[totalopenstation] 01/07: Imported Upstream version 0.3.1
Matteo F. Vescovi
mfv at moszumanska.debian.org
Mon May 4 08:03:58 UTC 2015
This is an automated email from the git hooks/post-receive script.
mfv pushed a commit to branch master
in repository totalopenstation.
commit 40a15f6052730b695fc2f5de374a0fd3f085fe1f
Author: Matteo F. Vescovi <mfv at debian.org>
Date: Mon May 4 09:22:48 2015 +0200
Imported Upstream version 0.3.1
---
AUTHORS | 25 +
MANIFEST.in | 5 +-
PKG-INFO | 55 ++
README.txt | 31 +-
data/icons/16x16/totalopenstation.png | Bin 0 -> 680 bytes
data/icons/16x16/totalopenstation.svg | 459 ++++++++++++
data/icons/22x22/totalopenstation.png | Bin 0 -> 846 bytes
data/icons/22x22/totalopenstation.svg | 470 +++++++++++++
data/icons/24x24/totalopenstation.png | Bin 0 -> 1369 bytes
data/icons/32x32/totalopenstation.png | Bin 0 -> 1547 bytes
data/icons/32x32/totalopenstation.svg | 777 +++++++++++++++++++++
data/icons/48x48/totalopenstation.png | Bin 0 -> 3994 bytes
data/icons/48x48/totalopenstation.svg | 770 ++++++++++++++++++++
data/totalopenstation.desktop | 7 +
distribute_setup.py | 485 -------------
docs/Makefile | 88 ---
docs/_static/sphinxdoc.css | 323 ---------
docs/_static/tops.ico | Bin 1150 -> 0 bytes
docs/_static/total-station-weblogo.png | Bin 5975 -> 0 bytes
docs/_templates/layout.html | 21 -
docs/conf.py | 195 ------
docs/contents.txt | 39 --
docs/contributing.rst | 34 +
docs/contributing.txt | 31 -
docs/data.txt | 47 --
docs/{faq.txt => faq.rst} | 0
docs/{formats.txt => formats.rst} | 0
...ing_sample_data.txt => getting_sample_data.rst} | 0
docs/glossary.rst | 32 +
docs/glossary.txt | 32 -
docs/index.rst | 96 +++
docs/index.txt | 86 ---
docs/input_formats/{general.txt => general.rst} | 0
docs/input_formats/if_carlson_rw5.rst | 42 ++
docs/input_formats/if_leica_gsi.rst | 45 ++
...if_leica_tcr_1205.txt => if_leica_tcr_1205.rst} | 0
...if_nikon_raw_v200.txt => if_nikon_raw_v200.rst} | 0
docs/input_formats/if_sokkia_sdr33.rst | 27 +
.../{if_trimble_are.txt => if_trimble_are.rst} | 0
.../{if_zeiss_rec_500.txt => if_zeiss_rec_500.rst} | 0
docs/input_formats/{new.txt => new.rst} | 0
docs/input_formats/{other.txt => other.rst} | 0
docs/installing.rst | 209 ++++++
docs/installing.txt | 59 --
docs/{library.txt => library.rst} | 8 +
docs/{models.txt => models.rst} | 0
docs/models/{general.txt => general.rst} | 0
...leica_tcr_1205.txt => model_leica_tcr_1205.rst} | 0
...l_nikon_npl_350.txt => model_nikon_npl_350.rst} | 0
...zeiss_elta_r55.txt => model_zeiss_elta_r55.rst} | 0
docs/models/{other.txt => other.rst} | 0
docs/release.rst | 70 ++
docs/requirements.txt | 85 ---
docs/{roadmap.txt => roadmap.rst} | 12 +-
docs/running.rst | 128 ++++
docs/running.txt | 19 -
docs/{users.txt => users.rst} | 14 +-
.../de/LC_MESSAGES/messages.po | 115 +--
po/el.po => locale/el/LC_MESSAGES/messages.po | 77 +-
.../es_ES/LC_MESSAGES/messages.po | 20 +-
.../fa/LC_MESSAGES/messages.po | 115 +--
.../fr/LC_MESSAGES/messages.po | 17 +-
po/it.po => locale/it/LC_MESSAGES/messages.po | 0
.../pl/LC_MESSAGES/messages.po | 114 +--
.../tr/LC_MESSAGES/messages.po | 20 +-
sample_data/Leica1200.rw5 | 32 +
sample_data/Leica1200.rw5.csv | 11 +
sample_data/leica_gsi/leica_gsi16_gurob.gsi | 344 +++++++++
sample_data/leica_gsi/leica_gsi8_ertola.gsi | 699 ++++++++++++++++++
sample_data/sokkia_sdr33.tops | 22 +
scripts/totalopenstation-cli-connector.py | 11 +-
scripts/totalopenstation-cli-parser.py | 54 +-
scripts/totalopenstation-gui.py | 181 +++--
setup.cfg | 5 +
setup.py | 2 +-
totalopenstation.egg-info/PKG-INFO | 55 ++
totalopenstation.egg-info/SOURCES.txt | 112 +++
totalopenstation.egg-info/dependency_links.txt | 1 +
totalopenstation.egg-info/not-zip-safe | 1 +
totalopenstation.egg-info/requires.txt | 1 +
totalopenstation.egg-info/top_level.txt | 1 +
totalopenstation/__init__.py | 23 +-
totalopenstation/formats/__init__.py | 9 +-
totalopenstation/formats/carlson_rw5.py | 90 +++
totalopenstation/formats/leica_gsi.py | 84 +++
totalopenstation/formats/nikon_raw_v200.py | 4 +-
totalopenstation/formats/polar.py | 64 +-
totalopenstation/formats/sokkia_sdr33.py | 47 ++
totalopenstation/formats/topcon_gts.py | 2 +-
totalopenstation/models/__init__.py | 10 +-
totalopenstation/models/custom.py | 18 +-
totalopenstation/models/leica_tcr_1205.py | 18 +-
totalopenstation/models/leica_tcr_705.py | 18 +-
totalopenstation/models/nikon_npl_350.py | 18 +-
totalopenstation/models/trimble.py | 18 +-
totalopenstation/models/zeiss_elta_r55.py | 18 +-
totalopenstation/output/tops_csv.py | 5 -
totalopenstation/output/tops_dat.py | 6 -
totalopenstation/output/tops_dxf.py | 13 +-
totalopenstation/output/tops_sql.py | 6 -
totalopenstation/output/tops_txt.py | 6 -
totalopenstation/tests/__init__.py | 0
totalopenstation/tests/test_polar.py | 31 +-
totalopenstation/tests/test_rw5.py | 18 +
totalopenstation/tests/test_sokkia_sdr33.py | 19 +
totalopenstation/utils/upref.py | 37 +-
106 files changed, 5427 insertions(+), 1991 deletions(-)
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..b773be8
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,25 @@
+Authors
+
+Stefano Costa
+Luca Bianconi
+
+Contributors
+
+Alessandro Bezzi
+Andrea Fratta
+Anna Hodgkinson
+Hannah Petten
+Filip Kłosowski
+
+Translators
+
+Kostis Papaspyrou (Greek)
+Wasilis Mandratzis (Greek, German)
+Mohammad Hosseini (Farsi)
+Filip Kłosowski (Polish)
+
+Packagers
+
+Matteo F. Vescovi (Debian)
+Angelos Tzotzos (OpenSUSE)
+Volker Frohlich (Fedora)
\ No newline at end of file
diff --git a/MANIFEST.in b/MANIFEST.in
index 7410aba..c9e6a7f 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,6 +1,7 @@
-recursive-include docs *.txt
-recursive-include po *.po
+recursive-include docs *.rst
+recursive-include locale *.mo *.po
recursive-include sample_data *
recursive-include data *.desktop *.svg *.png
+include AUTHORS
include COPYING.txt
include README.txt
diff --git a/PKG-INFO b/PKG-INFO
new file mode 100644
index 0000000..c1f3189
--- /dev/null
+++ b/PKG-INFO
@@ -0,0 +1,55 @@
+Metadata-Version: 1.1
+Name: totalopenstation
+Version: 0.3.1
+Summary: Download and export survey data from your total station
+Home-page: http://tops.iosa.it/
+Author: Stefano Costa
+Author-email: steko at iosa.it
+License: GNU GPLv3
+Description: ====================
+ Total Open Station
+ ====================
+
+ Total Open Station (TOPS for friends) is a free software program for
+ downloading and processing data from total station devices, written in
+ the Python programming language.
+
+ This is a task which is usually done by proprietary, dedicated and
+ Windows™-only software, but TOPS is different by nature, because:
+
+ - it is *free/libre open source software*;
+ - it works on *any* operating system where Python is available;
+ - it is designed to support as many devices and formats as possible, all
+ within the same program, opposed to having one program per device.
+
+ Every model has its own quirks, but TOPS uses a modular structure and
+ keeps the downloading of data logically separated from its processing,
+ thus enabling exporting data to a variety of output formats, even at a
+ later moment. Archiving of raw data is made easy by using plain text
+ files.
+
+ The application icons are copyright by Lapo Calamandrei 2008, under the
+ same license as Total Open Station.
+
+ Documentation
+ =============
+
+ Documentation is available at in the ``docs`` subdirectory of this
+ package and online at http://totalopenstation.readthedocs.org/ with
+ an user guide, details on the application structure, supported models
+ and other interesting stuff.
+
+Keywords: survey geodimeter
+Platform: UNKNOWN
+Classifier: Development Status :: 4 - Beta
+Classifier: Environment :: Console
+Classifier: Environment :: X11 Applications
+Classifier: Intended Audience :: End Users/Desktop
+Classifier: License :: OSI Approved :: GNU General Public License (GPL)
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.5
+Classifier: Programming Language :: Python :: 2.6
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Topic :: Scientific/Engineering :: GIS
diff --git a/README.txt b/README.txt
index 18ccd39..fc4f55b 100644
--- a/README.txt
+++ b/README.txt
@@ -9,9 +9,8 @@ the Python programming language.
This is a task which is usually done by proprietary, dedicated and
Windows™-only software, but TOPS is different by nature, because:
-- it is *free software* released under the GNU GPLv3 license;
-- it works on *any* operating system, including mobile platforms like
- OpenMoko;
+- it is *free/libre open source software*;
+- it works on *any* operating system where Python is available;
- it is designed to support as many devices and formats as possible, all
within the same program, opposed to having one program per device.
@@ -21,29 +20,13 @@ thus enabling exporting data to a variety of output formats, even at a
later moment. Archiving of raw data is made easy by using plain text
files.
-The application icons are copyright by Lapo Calamandrei 2008.
-
-GUI
-===
-
-The ``totalopenstation-gui`` module is a simple, yet complete
-graphical user interface for Total Open Station that allows to
-download, open and save raw data and export into the available output
-formats. It is currently based on Tkinter and works on all major
-platforms (tested on GNU/Linux and Microsoft Windows).
-
-CLI
-===
-
-The ``totalopenstation-cli-connector`` module is a command line
-user interface to download and save raw data, while its companion
-``totalopenstation-cli-parser`` is responsible for parsing and
-exporting data.
+The application icons are copyright by Lapo Calamandrei 2008, under the
+same license as Total Open Station.
Documentation
=============
Documentation is available at in the ``docs`` subdirectory of this
-package and online at http://tops.berlios.de/ with an user guide,
-details on the application structure, supported models and other
-stuff.
+package and online at http://totalopenstation.readthedocs.org/ with
+an user guide, details on the application structure, supported models
+and other interesting stuff.
diff --git a/data/icons/16x16/totalopenstation.png b/data/icons/16x16/totalopenstation.png
new file mode 100644
index 0000000..05522ec
Binary files /dev/null and b/data/icons/16x16/totalopenstation.png differ
diff --git a/data/icons/16x16/totalopenstation.svg b/data/icons/16x16/totalopenstation.svg
new file mode 100644
index 0000000..9a37bad
--- /dev/null
+++ b/data/icons/16x16/totalopenstation.svg
@@ -0,0 +1,459 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docbase="/home/lapo/Modelli"
+ sodipodi:docname="total-station.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3782">
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:1;"
+ offset="0"
+ id="stop3784" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1"
+ id="stop3786" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3774">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3776" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3778" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3762">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3764" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3766" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2776">
+ <stop
+ id="stop2778"
+ offset="0"
+ style="stop-color:#555753;stop-opacity:1" />
+ <stop
+ style="stop-color:#babdb6;stop-opacity:1"
+ offset="0.21264227"
+ id="stop2780" />
+ <stop
+ id="stop2782"
+ offset="1"
+ style="stop-color:#555753;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4143">
+ <stop
+ style="stop-color:#555753;stop-opacity:1;"
+ offset="0"
+ id="stop4145" />
+ <stop
+ id="stop4151"
+ offset="0.41101107"
+ style="stop-color:#babdb6;stop-opacity:1" />
+ <stop
+ style="stop-color:#555753;stop-opacity:1"
+ offset="1"
+ id="stop4147" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4125">
+ <stop
+ style="stop-color:#f57900;stop-opacity:1"
+ offset="0"
+ id="stop4127" />
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:1"
+ offset="1"
+ id="stop4129" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2818">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2820" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2822" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2591">
+ <stop
+ style="stop-color:#7a7a7a;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2593" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop2595" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4143"
+ id="linearGradient4655"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(111,89.5)"
+ x1="21.1875"
+ y1="17.46875"
+ x2="25.752674"
+ y2="17.46875" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4125"
+ id="linearGradient4657"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(80,90)"
+ x1="48.4375"
+ y1="-2.607861"
+ x2="48"
+ y2="15" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3782"
+ id="linearGradient4659"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(40,-10)"
+ x1="95.194252"
+ y1="105.32021"
+ x2="95.194252"
+ y2="102" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3774"
+ id="linearGradient4661"
+ gradientUnits="userSpaceOnUse"
+ x1="94"
+ y1="103.5"
+ x2="97.5"
+ y2="106.5" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4125"
+ id="linearGradient4663"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(80,90)"
+ x1="48.4375"
+ y1="-2.607861"
+ x2="48"
+ y2="15" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3762"
+ id="linearGradient4665"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(40,-10)"
+ x1="96.5"
+ y1="112.75"
+ x2="102"
+ y2="114.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2776"
+ id="linearGradient4667"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,1,-1,0,31,65)"
+ x1="21.218287"
+ y1="5.3125"
+ x2="25.718859"
+ y2="5.3125" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2591"
+ id="radialGradient4669"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.013514,0,-0.304899)"
+ cx="16.875"
+ cy="23.672499"
+ fx="16.875"
+ fy="23.672499"
+ r="4.625" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2818"
+ id="radialGradient4671"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.035714,0,-0.810268)"
+ cx="14.75"
+ cy="22.6875"
+ fx="14.75"
+ fy="22.6875"
+ r="1.75" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2"
+ inkscape:cx="7.746352"
+ inkscape:cy="0.28994132"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ inkscape:showpageshadow="false"
+ width="48px"
+ height="48px"
+ inkscape:window-width="872"
+ inkscape:window-height="713"
+ inkscape:window-x="272"
+ inkscape:window-y="120"
+ showgrid="false"
+ objecttolerance="10000"
+ gridtolerance="10000"
+ guidetolerance="10000"
+ inkscape:snap-intersection-grid-guide="true"
+ inkscape:snap-global="true"
+ inkscape:snap-nodes="true"
+ inkscape:snap-bbox="true"
+ showborder="false"
+ showguides="true"
+ inkscape:guide-bbox="true">
+ <inkscape:grid
+ id="GridFromPre046Settings"
+ type="xygrid"
+ originx="0px"
+ originy="0px"
+ spacingx="0.5px"
+ spacingy="0.5px"
+ color="#0000ff"
+ empcolor="#0000ff"
+ opacity="0.2"
+ empopacity="0.4"
+ empspacing="2"
+ visible="true"
+ enabled="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Lapo Calamandrei</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Livello 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ id="g4631"
+ transform="translate(-127,-92)">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2626"
+ d="M 131.5,108 L 131.5,105 L 138.5,105 L 138.5,108"
+ style="fill:url(#linearGradient4655);fill-opacity:1;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccccccccccccc"
+ id="path2628"
+ d="M 128.5,94.5 C 127.946,94.5 127.5,94.946 127.5,95.5 L 127.5,105.46875 C 127.5,106.04006 127.95994,106.5 128.53125,106.5 L 141.46875,106.5 C 142.04006,106.5 142.5,106.04006 142.5,105.46875 L 142.5,95.5 C 142.5,94.946 142.054,94.5 141.5,94.5 L 139.5,94.5 C 138.946,94.5 138.5,94.946 138.5,95.5 L 138.5,103.5 L 131.5,103.5 L 131.5,95.5 C 131.5,94.946 132.054,94.5 131.5,94.5 L 128.5,94.5 z"
+ style="fill:url(#linearGradient4657);fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ ry="1"
+ rx="1"
+ y="103"
+ x="129"
+ height="2"
+ width="10"
+ id="rect2630"
+ style="opacity:0.481982;fill:#ce5c00;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ ry="0.5"
+ rx="0.5"
+ y="95"
+ x="129"
+ height="9"
+ width="2"
+ id="rect3690"
+ style="opacity:1;fill:#f57900;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ ry="0.5"
+ rx="0.5"
+ y="95"
+ x="128"
+ height="1"
+ width="2"
+ id="rect2632"
+ style="fill:#fcaf3e;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path2624"
+ d="M 131.0026,92.5 L 137.9974,92.5 C 138.82984,92.5 139.5,93.17016 139.5,94.0026 L 139.5,99.9974 C 139.5,100.82984 138.82984,101.5 137.9974,101.5 L 131.0026,101.5 C 130.17016,101.5 129.5,100.82984 129.5,99.9974 L 129.5,94.0026 C 129.5,93.17016 130.17016,92.5 131.0026,92.5 z"
+ style="fill:url(#linearGradient4659);fill-opacity:1;stroke:#ce5c00;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path2638"
+ d="M 137.9678,93 L 138.0322,93 C 138.56836,93 139,93.37768 139,93.84683 L 139,100.15317 C 139,100.62232 138.56836,101 138.0322,101 L 137.9678,101 C 137.43164,101 137,100.62232 137,100.15317 L 137,93.84683 C 137,93.37768 137.43164,93 137.9678,93 z"
+ style="fill:#f57900;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ transform="translate(40,-10)"
+ d="M 91,103.5 C 90.702178,103.5 90.5,103.70218 90.5,104 L 90.5,110 C 90.5,110.29782 90.702178,110.5 91,110.5 L 98,110.5 C 98.297822,110.5 98.5,110.29782 98.5,110 L 98.5,104 C 98.5,103.70218 98.297822,103.5 98,103.5 L 91,103.5 z"
+ id="path3772"
+ style="opacity:0.63963964;fill:none;fill-opacity:1;stroke:url(#linearGradient4661);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ inkscape:original="M 91 102.5 C 90.167558 102.5 89.5 103.16756 89.5 104 L 89.5 110 C 89.5 110.83244 90.167558 111.5 91 111.5 L 98 111.5 C 98.832442 111.5 99.5 110.83244 99.5 110 L 99.5 104 C 99.5 103.16756 98.832442 102.5 98 102.5 L 91 102.5 z "
+ inkscape:radius="-1"
+ sodipodi:type="inkscape:offset" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ id="path3686"
+ d="M 142.5,105.46875 L 142.5,95.5 C 142.5,94.946 142.054,94.5 141.5,94.5 L 139.5,94.5 C 138.946,94.5 138.5,94.946 138.5,95.5 L 138.5,103.5"
+ style="fill:url(#linearGradient4663);fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ ry="0.5"
+ rx="0.5"
+ y="95"
+ x="140"
+ height="11"
+ width="2"
+ id="rect3692"
+ style="opacity:1;fill:#f57900;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ ry="0.5"
+ rx="0.5"
+ y="95"
+ x="139"
+ height="1"
+ width="3"
+ id="rect2634"
+ style="fill:#fcaf3e;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cccccccc"
+ id="path3757"
+ d="M 128.5,95.5 L 128.5,105.46875 C 128.5,105.49575 128.50425,105.5 128.53125,105.5 L 141.46875,105.5 C 141.49574,105.5 141.5,105.49574 141.5,105.46875 L 141.5,95.5 L 139.5,95.5 L 139.5,103.5"
+ style="opacity:0.5;fill:none;fill-opacity:1;stroke:url(#linearGradient4665);stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ <g
+ transform="translate(109,11)"
+ id="g3725">
+ <path
+ style="fill:url(#linearGradient4667);fill-opacity:1;stroke:#2e3436;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 27.5,88.5 C 27.5,86.844 26.156,85.5 24.5,85.5 L 23.5,85.5 C 21.844,85.5 20.5,86.844 20.5,88.5 C 20.5,90.156 21.844,91.5 23.5,91.5 L 24.5,91.5 C 26.156,91.5 27.5,90.156 27.5,88.5 z"
+ id="path3727"
+ sodipodi:nodetypes="cccsccc" />
+ <g
+ id="g3729"
+ transform="matrix(0.272494,0,0,0.2719644,56.817826,61.883567)"
+ style="stroke:none">
+ <g
+ style="stroke:none;display:inline"
+ id="g3731"
+ transform="matrix(0.7957586,0,0,0.7854084,-52.69391,41.637513)">
+ <path
+ transform="matrix(2.23121,0,0,2.2312076,-122.56757,21.243795)"
+ d="M 19.875,22.5625 A 4.125,4.1875 0 1 1 11.625,22.5625 A 4.125,4.1875 0 1 1 19.875,22.5625 z"
+ sodipodi:ry="4.1875"
+ sodipodi:rx="4.125"
+ sodipodi:cy="22.5625"
+ sodipodi:cx="15.75"
+ id="path3733"
+ style="fill:url(#radialGradient4669);fill-opacity:1;fill-rule:nonzero;stroke:#888a85;stroke-width:2.08250856;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.676984,0,0,1.676984,-111.83457,33.611503)"
+ d="M 16.5,22.6875 A 1.75,1.8125 0 1 1 13,22.6875 A 1.75,1.8125 0 1 1 16.5,22.6875 z"
+ sodipodi:ry="1.8125"
+ sodipodi:rx="1.75"
+ sodipodi:cy="22.6875"
+ sodipodi:cx="14.75"
+ id="path3735"
+ style="opacity:0.60759499;fill:#ffffff;fill-opacity:0.52866247;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.37341769;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+ id="path3737"
+ sodipodi:cx="14.75"
+ sodipodi:cy="22.6875"
+ sodipodi:rx="1.75"
+ sodipodi:ry="1.8125"
+ d="M 16.5,22.6875 A 1.75,1.8125 0 1 1 13,22.6875 A 1.75,1.8125 0 1 1 16.5,22.6875 z"
+ transform="matrix(1.673245,0,0,1.673245,-114.00058,31.80613)" />
+ <path
+ transform="matrix(0.41273,0,0,0.41273,-89.88316,65.788647)"
+ d="M 16.5,22.6875 A 1.75,1.8125 0 1 1 13,22.6875 A 1.75,1.8125 0 1 1 16.5,22.6875 z"
+ sodipodi:ry="1.8125"
+ sodipodi:rx="1.75"
+ sodipodi:cy="22.6875"
+ sodipodi:cx="14.75"
+ id="path3739"
+ style="fill:url(#radialGradient4671);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+ id="path3741"
+ sodipodi:cx="14.75"
+ sodipodi:cy="22.6875"
+ sodipodi:rx="1.75"
+ sodipodi:ry="1.8125"
+ d="M 16.5,22.6875 A 1.75,1.8125 0 1 1 13,22.6875 A 1.75,1.8125 0 1 1 16.5,22.6875 z"
+ transform="matrix(0.45611,0,0,0.45611,-97.03183,58.199937)" />
+ </g>
+ <path
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+ d="M -122.01561,95.523589 C -123.30471,95.523589 -124.32811,96.612063 -124.32811,97.929839 C -124.32811,98.234686 -124.27389,98.505482 -124.17186,98.773589 C -124.03914,98.797627 -123.90505,98.804839 -123.76561,98.804839 C -122.47938,98.804839 -121.45311,97.744677 -121.45311,96.429839 C -121.45311,96.134546 -121.48189,95.847111 -121.57811,95.586089 C -121.72078,95.558211 -121.86503,95.523589 -122.01561,95.523589 z"
+ id="path3743" />
+ </g>
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/data/icons/22x22/totalopenstation.png b/data/icons/22x22/totalopenstation.png
new file mode 100644
index 0000000..838401c
Binary files /dev/null and b/data/icons/22x22/totalopenstation.png differ
diff --git a/data/icons/22x22/totalopenstation.svg b/data/icons/22x22/totalopenstation.svg
new file mode 100644
index 0000000..653e4d0
--- /dev/null
+++ b/data/icons/22x22/totalopenstation.svg
@@ -0,0 +1,470 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="22"
+ height="22"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docbase="/home/lapo/Modelli"
+ sodipodi:docname="total-station.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3606">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3608" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3610" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3578">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3580" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3582" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2798">
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:1;"
+ offset="0"
+ id="stop2800" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1"
+ id="stop2802" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2776">
+ <stop
+ id="stop2778"
+ offset="0"
+ style="stop-color:#555753;stop-opacity:1" />
+ <stop
+ style="stop-color:#babdb6;stop-opacity:1"
+ offset="0.21264227"
+ id="stop2780" />
+ <stop
+ id="stop2782"
+ offset="1"
+ style="stop-color:#555753;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4522">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop4524" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop4526" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4143">
+ <stop
+ style="stop-color:#555753;stop-opacity:1;"
+ offset="0"
+ id="stop4145" />
+ <stop
+ id="stop4151"
+ offset="0.41101107"
+ style="stop-color:#babdb6;stop-opacity:1" />
+ <stop
+ style="stop-color:#555753;stop-opacity:1"
+ offset="1"
+ id="stop4147" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2818">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2820" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2822" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2591">
+ <stop
+ style="stop-color:#7a7a7a;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2593" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop2595" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4522"
+ id="radialGradient4615"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.254717,0,12.832848)"
+ cx="93.824234"
+ cy="17.218758"
+ fx="93.824234"
+ fy="17.218758"
+ r="7.0268736" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4143"
+ id="linearGradient4617"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3333334,0,0,1,32.166669,99.6875)"
+ x1="21.1875"
+ y1="17.46875"
+ x2="25.752674"
+ y2="17.46875" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2798"
+ id="linearGradient4619"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1,0)"
+ x1="21.625"
+ y1="84.438705"
+ x2="21.625"
+ y2="79.999496" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3578"
+ id="linearGradient4621"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1,0)"
+ x1="22.5"
+ y1="81.5"
+ x2="24"
+ y2="96.5" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2776"
+ id="linearGradient4623"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,1,-1,0,31,65)"
+ x1="21.218287"
+ y1="5.3125"
+ x2="25.718859"
+ y2="5.3125" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2591"
+ id="radialGradient4625"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.013514,0,-0.304899)"
+ cx="16.875"
+ cy="23.672499"
+ fx="16.875"
+ fy="23.672499"
+ r="4.625" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2818"
+ id="radialGradient4627"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.035714,0,-0.810268)"
+ cx="14.75"
+ cy="22.6875"
+ fx="14.75"
+ fy="22.6875"
+ r="1.75" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3606"
+ id="linearGradient4629"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1,0)"
+ x1="24.17202"
+ y1="83.353554"
+ x2="33.47496"
+ y2="88.212944" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2"
+ inkscape:cx="7.746352"
+ inkscape:cy="0.28994132"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ inkscape:showpageshadow="false"
+ width="48px"
+ height="48px"
+ inkscape:window-width="872"
+ inkscape:window-height="713"
+ inkscape:window-x="272"
+ inkscape:window-y="120"
+ showgrid="false"
+ objecttolerance="10000"
+ gridtolerance="10000"
+ guidetolerance="10000"
+ inkscape:snap-intersection-grid-guide="true"
+ inkscape:snap-global="true"
+ inkscape:snap-nodes="true"
+ inkscape:snap-bbox="true"
+ showborder="true"
+ showguides="true"
+ inkscape:guide-bbox="true">
+ <inkscape:grid
+ id="GridFromPre046Settings"
+ type="xygrid"
+ originx="0px"
+ originy="0px"
+ spacingx="0.5px"
+ spacingy="0.5px"
+ color="#0000ff"
+ empcolor="#0000ff"
+ opacity="0.2"
+ empopacity="0.4"
+ empspacing="2"
+ visible="true"
+ enabled="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Lapo Calamandrei</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Livello 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ id="g4587"
+ transform="translate(-52,-99)">
+ <path
+ transform="matrix(1.2452195,0,0,1.6761049,-53.081763,88.639556)"
+ d="M 100.85111,17.218758 A 7.0268736,1.7898641 0 1 1 86.79736,17.218758 A 7.0268736,1.7898641 0 1 1 100.85111,17.218758 z"
+ sodipodi:ry="1.7898641"
+ sodipodi:rx="7.0268736"
+ sodipodi:cy="17.218758"
+ sodipodi:cx="93.824234"
+ id="path2662"
+ style="opacity:0.68468472;fill:url(#radialGradient4615);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <rect
+ rx="4"
+ ry="0.78125"
+ y="114"
+ x="59.5"
+ height="4.5"
+ width="8"
+ id="rect2664"
+ style="fill:url(#linearGradient4617);fill-opacity:1;stroke:#2e3436;stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <g
+ transform="translate(40,20)"
+ id="g3910">
+ <path
+ style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 15.5,82.5 C 14.946,82.5 14.5,82.946 14.5,83.5 L 14.5,95.46875 C 14.5,96.04006 14.959938,96.5 15.53125,96.5 L 30.46875,96.5 C 31.040062,96.5 31.500001,96.04006 31.5,95.46875 L 31.5,83.5 C 31.5,82.946 31.054,82.5 30.5,82.5 L 26.5,82.5 C 25.946,82.5 25.5,82.946 25.5,83.5 L 25.5,93.5 L 20.5,93.5 L 20.5,83.5 C 20.5,82.946 20.054,82.5 19.5,82.5 L 15.5,82.5 z"
+ id="path3912"
+ sodipodi:nodetypes="ccccccccccccccc" />
+ <rect
+ style="fill:#fcaf3e;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3914"
+ width="2"
+ height="1"
+ x="15"
+ y="83"
+ rx="0.5"
+ ry="0.5" />
+ <rect
+ style="opacity:0.27927928;fill:#ce5c00;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3916"
+ width="8"
+ height="2"
+ x="18"
+ y="93"
+ rx="1"
+ ry="1" />
+ <rect
+ style="fill:#f57900;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3918"
+ width="2"
+ height="11"
+ x="18"
+ y="83"
+ rx="0.40625"
+ ry="0.40625" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path3920"
+ d="M 19.002602,80.5 L 25.997398,80.5 C 26.82984,80.5 27.5,81.17016 27.5,82.002602 L 27.5,89.997398 C 27.5,90.82984 26.82984,91.5 25.997398,91.5 L 19.002602,91.5 C 18.17016,91.5 17.5,90.82984 17.5,89.997398 L 17.5,82.002602 C 17.5,81.17016 18.17016,80.5 19.002602,80.5 z"
+ style="fill:url(#linearGradient4619);fill-opacity:1;stroke:#ce5c00;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="fill:#f57900;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3922"
+ width="3"
+ height="10"
+ x="24"
+ y="81"
+ rx="1"
+ ry="1" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path3924"
+ d="M 19.065102,81.5 L 25.934898,81.5 C 26.247965,81.5 26.5,81.752035 26.5,82.065102 L 26.5,89.934898 C 26.5,90.247965 26.247965,90.5 25.934898,90.5 L 19.065102,90.5 C 18.752035,90.5 18.5,90.247965 18.5,89.934898 L 18.5,82.065102 C 18.5,81.752035 18.752035,81.5 19.065102,81.5 z"
+ style="opacity:0.35135133;fill:none;fill-opacity:1;stroke:url(#linearGradient4621);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 31.5,95.46875 L 31.5,83.5 C 31.5,82.946 31.054,82.5 30.5,82.5 L 26.5,82.5 C 25.946,82.5 25.5,82.946 25.5,83.5 L 25.5,93.5"
+ id="path3926"
+ sodipodi:nodetypes="cccccc" />
+ <rect
+ style="fill:#f57900;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3928"
+ width="2"
+ height="13"
+ x="29"
+ y="83"
+ rx="0.40625"
+ ry="0.40625" />
+ <rect
+ style="fill:#fcaf3e;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3930"
+ width="5"
+ height="1"
+ x="26"
+ y="83"
+ rx="0.5"
+ ry="0.5" />
+ <g
+ id="g3932"
+ transform="translate(-4,0)">
+ <path
+ sodipodi:nodetypes="cccsccc"
+ id="path3934"
+ d="M 27.5,88.5 C 27.5,86.844 26.156,85.5 24.5,85.5 L 23.5,85.5 C 21.844,85.5 20.5,86.844 20.5,88.5 C 20.5,90.156 21.844,91.5 23.5,91.5 L 24.5,91.5 C 26.156,91.5 27.5,90.156 27.5,88.5 z"
+ style="fill:url(#linearGradient4623);fill-opacity:1;stroke:#2e3436;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <g
+ style="stroke:none"
+ transform="matrix(0.272494,0,0,0.2719644,56.817826,61.883567)"
+ id="g3936">
+ <g
+ transform="matrix(0.7957586,0,0,0.7854084,-52.69391,41.637513)"
+ id="g3938"
+ style="stroke:none;display:inline">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient4625);fill-opacity:1;fill-rule:nonzero;stroke:#888a85;stroke-width:2.08250856;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+ id="path3940"
+ sodipodi:cx="15.75"
+ sodipodi:cy="22.5625"
+ sodipodi:rx="4.125"
+ sodipodi:ry="4.1875"
+ d="M 19.875,22.5625 A 4.125,4.1875 0 1 1 11.625,22.5625 A 4.125,4.1875 0 1 1 19.875,22.5625 z"
+ transform="matrix(2.23121,0,0,2.2312076,-122.56757,21.243795)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.60759499;fill:#ffffff;fill-opacity:0.52866247;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+ id="path3942"
+ sodipodi:cx="14.75"
+ sodipodi:cy="22.6875"
+ sodipodi:rx="1.75"
+ sodipodi:ry="1.8125"
+ d="M 16.5,22.6875 A 1.75,1.8125 0 1 1 13,22.6875 A 1.75,1.8125 0 1 1 16.5,22.6875 z"
+ transform="matrix(1.676984,0,0,1.676984,-111.83457,33.611503)" />
+ <path
+ transform="matrix(1.673245,0,0,1.673245,-114.00058,31.80613)"
+ d="M 16.5,22.6875 A 1.75,1.8125 0 1 1 13,22.6875 A 1.75,1.8125 0 1 1 16.5,22.6875 z"
+ sodipodi:ry="1.8125"
+ sodipodi:rx="1.75"
+ sodipodi:cy="22.6875"
+ sodipodi:cx="14.75"
+ id="path3944"
+ style="opacity:0.37341769;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient4627);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+ id="path3946"
+ sodipodi:cx="14.75"
+ sodipodi:cy="22.6875"
+ sodipodi:rx="1.75"
+ sodipodi:ry="1.8125"
+ d="M 16.5,22.6875 A 1.75,1.8125 0 1 1 13,22.6875 A 1.75,1.8125 0 1 1 16.5,22.6875 z"
+ transform="matrix(0.41273,0,0,0.41273,-89.88316,65.788647)" />
+ <path
+ transform="matrix(0.45611,0,0,0.45611,-97.03183,58.199937)"
+ d="M 16.5,22.6875 A 1.75,1.8125 0 1 1 13,22.6875 A 1.75,1.8125 0 1 1 16.5,22.6875 z"
+ sodipodi:ry="1.8125"
+ sodipodi:rx="1.75"
+ sodipodi:cy="22.6875"
+ sodipodi:cx="14.75"
+ id="path3948"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+ sodipodi:type="arc" />
+ </g>
+ <path
+ id="path3950"
+ d="M -122.01561,95.523589 C -123.30471,95.523589 -124.32811,96.612063 -124.32811,97.929839 C -124.32811,98.234686 -124.27389,98.505482 -124.17186,98.773589 C -124.03914,98.797627 -123.90505,98.804839 -123.76561,98.804839 C -122.47938,98.804839 -121.45311,97.744677 -121.45311,96.429839 C -121.45311,96.134546 -121.48189,95.847111 -121.57811,95.586089 C -121.72078,95.558211 -121.86503,95.523589 -122.01561,95.523589 z"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans" />
+ </g>
+ </g>
+ <path
+ style="opacity:0.63063061;fill:none;fill-opacity:1;stroke:url(#linearGradient4629);stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 16.5,83.5 L 15.5,83.5 L 15.5,95.46875 C 15.5,95.50335 15.496644,95.5 15.53125,95.5 L 30.46875,95.5 C 30.503356,95.5 30.5,95.50335 30.5,95.46875 L 30.5,83.5 L 26.5,83.5 L 26.5,93.5"
+ id="path3952"
+ sodipodi:nodetypes="ccccccccc" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/data/icons/24x24/totalopenstation.png b/data/icons/24x24/totalopenstation.png
new file mode 100644
index 0000000..fb3884a
Binary files /dev/null and b/data/icons/24x24/totalopenstation.png differ
diff --git a/data/icons/32x32/totalopenstation.png b/data/icons/32x32/totalopenstation.png
new file mode 100644
index 0000000..2f07b6b
Binary files /dev/null and b/data/icons/32x32/totalopenstation.png differ
diff --git a/data/icons/32x32/totalopenstation.svg b/data/icons/32x32/totalopenstation.svg
new file mode 100644
index 0000000..56fbe0a
--- /dev/null
+++ b/data/icons/32x32/totalopenstation.svg
@@ -0,0 +1,777 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32"
+ height="32"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docbase="/home/lapo/Modelli"
+ sodipodi:docname="total-station.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4510">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop4512" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4514" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4455">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop4457" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4459" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3782">
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:1;"
+ offset="0"
+ id="stop3784" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1"
+ id="stop3786" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3774">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3776" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3778" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3762">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3764" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3766" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2776">
+ <stop
+ id="stop2778"
+ offset="0"
+ style="stop-color:#555753;stop-opacity:1" />
+ <stop
+ style="stop-color:#babdb6;stop-opacity:1"
+ offset="0.21264227"
+ id="stop2780" />
+ <stop
+ id="stop2782"
+ offset="1"
+ style="stop-color:#555753;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4155">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop4157" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop4159" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4143">
+ <stop
+ style="stop-color:#555753;stop-opacity:1;"
+ offset="0"
+ id="stop4145" />
+ <stop
+ id="stop4151"
+ offset="0.41101107"
+ style="stop-color:#babdb6;stop-opacity:1" />
+ <stop
+ style="stop-color:#555753;stop-opacity:1"
+ offset="1"
+ id="stop4147" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4125">
+ <stop
+ style="stop-color:#f57900;stop-opacity:1"
+ offset="0"
+ id="stop4127" />
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:1"
+ offset="1"
+ id="stop4129" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2818">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2820" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2822" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2591">
+ <stop
+ style="stop-color:#7a7a7a;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2593" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop2595" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4155"
+ id="radialGradient4556"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.4285714,0,26.571429)"
+ cx="23.5"
+ cy="46.5"
+ fx="23.5"
+ fy="46.5"
+ r="3.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4155"
+ id="radialGradient4558"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.4285714,0,26.571429)"
+ cx="23.5"
+ cy="46.5"
+ fx="23.5"
+ fy="46.5"
+ r="3.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4155"
+ id="radialGradient4561"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.4285714,0,26.571429)"
+ cx="23.5"
+ cy="46.5"
+ fx="23.5"
+ fy="46.5"
+ r="3.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4155"
+ id="radialGradient4563"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.4285714,0,26.571429)"
+ cx="23.5"
+ cy="46.5"
+ fx="23.5"
+ fy="46.5"
+ r="3.5" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4510"
+ id="linearGradient4565"
+ gradientUnits="userSpaceOnUse"
+ x1="20"
+ y1="247.5"
+ x2="21.5"
+ y2="253" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4143"
+ id="linearGradient4567"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.1666667,0,0,1,-4.4166672,231)"
+ x1="21.1875"
+ y1="17.46875"
+ x2="25.752674"
+ y2="17.46875" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4125"
+ id="linearGradient4569"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-32,231)"
+ x1="48.4375"
+ y1="-2.607861"
+ x2="48"
+ y2="15" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3782"
+ id="linearGradient4571"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-72,133)"
+ x1="95.194252"
+ y1="105.32021"
+ x2="95.194252"
+ y2="102" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3774"
+ id="linearGradient4573"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-72,131)"
+ x1="94"
+ y1="103.5"
+ x2="97.5"
+ y2="106.5" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4125"
+ id="linearGradient4575"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-33,231)"
+ x1="48.4375"
+ y1="-2.607861"
+ x2="48"
+ y2="15" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3762"
+ id="linearGradient4577"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-72,131)"
+ x1="96.5"
+ y1="112.75"
+ x2="102"
+ y2="114.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2776"
+ id="linearGradient4579"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,1,-1,0,31,65)"
+ x1="21.218287"
+ y1="5.3125"
+ x2="25.718859"
+ y2="5.3125" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2591"
+ id="radialGradient4581"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.013514,0,-0.304899)"
+ cx="16.875"
+ cy="23.672499"
+ fx="16.875"
+ fy="23.672499"
+ r="4.625" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2818"
+ id="radialGradient4583"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.035714,0,-0.810268)"
+ cx="14.75"
+ cy="22.6875"
+ fx="14.75"
+ fy="22.6875"
+ r="1.75" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4455"
+ id="linearGradient4585"
+ gradientUnits="userSpaceOnUse"
+ x1="23"
+ y1="263.96875"
+ x2="26.4375"
+ y2="246.21875" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4455"
+ id="linearGradient2469"
+ gradientUnits="userSpaceOnUse"
+ x1="23"
+ y1="263.96875"
+ x2="26.4375"
+ y2="246.21875"
+ gradientTransform="translate(-7,-235)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3762"
+ id="linearGradient2482"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-79,-104)"
+ x1="96.5"
+ y1="112.75"
+ x2="102"
+ y2="114.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4125"
+ id="linearGradient2486"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-40,-4)"
+ x1="48.4375"
+ y1="-2.607861"
+ x2="48"
+ y2="15" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3774"
+ id="linearGradient2489"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-79,-104)"
+ x1="94"
+ y1="103.5"
+ x2="97.5"
+ y2="106.5" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3782"
+ id="linearGradient2493"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-79,-102)"
+ x1="95.194252"
+ y1="105.32021"
+ x2="95.194252"
+ y2="102" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4125"
+ id="linearGradient2498"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-39,-4)"
+ x1="48.4375"
+ y1="-2.607861"
+ x2="48"
+ y2="15" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4143"
+ id="linearGradient2501"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.1666667,0,0,1,-11.416667,-4)"
+ x1="21.1875"
+ y1="17.46875"
+ x2="25.752674"
+ y2="17.46875" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4155"
+ id="radialGradient2518"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.4285714,0,26.571429)"
+ cx="23.5"
+ cy="46.5"
+ fx="23.5"
+ fy="46.5"
+ r="3.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4155"
+ id="radialGradient2520"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.4285714,0,26.571429)"
+ cx="23.5"
+ cy="46.5"
+ fx="23.5"
+ fy="46.5"
+ r="3.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4155"
+ id="radialGradient2522"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.4285714,0,26.571429)"
+ cx="23.5"
+ cy="46.5"
+ fx="23.5"
+ fy="46.5"
+ r="3.5" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="13.789412"
+ inkscape:cy="3.1994007"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ inkscape:showpageshadow="false"
+ width="48px"
+ height="48px"
+ inkscape:window-width="872"
+ inkscape:window-height="713"
+ inkscape:window-x="272"
+ inkscape:window-y="120"
+ showgrid="false"
+ objecttolerance="10000"
+ gridtolerance="10000"
+ guidetolerance="10000"
+ inkscape:snap-intersection-grid-guide="true"
+ inkscape:snap-global="true"
+ inkscape:snap-nodes="true"
+ inkscape:snap-bbox="true"
+ showborder="true"
+ showguides="true"
+ inkscape:guide-bbox="true">
+ <inkscape:grid
+ id="GridFromPre046Settings"
+ type="xygrid"
+ originx="0px"
+ originy="0px"
+ spacingx="0.5px"
+ spacingy="0.5px"
+ color="#0000ff"
+ empcolor="#0000ff"
+ opacity="0.2"
+ empopacity="0.4"
+ empspacing="2"
+ visible="true"
+ enabled="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Lapo Calamandrei</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Livello 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ transform="matrix(4.5714281,0,0,2.999999,-91.428562,-112.99995)"
+ d="M 27,46.5 A 3.5,1.5 0 1 1 20,46.5 A 3.5,1.5 0 1 1 27,46.5 z"
+ sodipodi:ry="1.5"
+ sodipodi:rx="3.5"
+ sodipodi:cy="46.5"
+ sodipodi:cx="23.5"
+ id="path4481"
+ style="opacity:0.18018015;fill:url(#radialGradient4556);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1,0,0,1.3830162,-19.5,-37.810252)"
+ d="M 27,46.5 A 3.5,1.5 0 1 1 20,46.5 A 3.5,1.5 0 1 1 27,46.5 z"
+ sodipodi:ry="1.5"
+ sodipodi:rx="3.5"
+ sodipodi:cy="46.5"
+ sodipodi:cx="23.5"
+ id="path4477"
+ style="opacity:0.4099099;fill:url(#radialGradient2520);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <rect
+ style="fill:#a40000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4465"
+ width="2"
+ height="2.5"
+ x="3"
+ y="24.5"
+ rx="1"
+ ry="0.83333331" />
+ <rect
+ style="fill:#f57900;fill-opacity:1;stroke:#ce5c00;stroke-width:1.18920708;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4403"
+ width="3"
+ height="14.142136"
+ x="-31.5"
+ y="21.920321"
+ rx="0.9352566"
+ ry="1.3226526"
+ transform="matrix(-1,0,-0.7071068,0.7071068,0,0)" />
+ <path
+ transform="matrix(1,0,0,1.3830162,4.5,-37.810252)"
+ d="M 27,46.5 A 3.5,1.5 0 1 1 20,46.5 A 3.5,1.5 0 1 1 27,46.5 z"
+ sodipodi:ry="1.5"
+ sodipodi:rx="3.5"
+ sodipodi:cy="46.5"
+ sodipodi:cx="23.5"
+ id="path4473"
+ style="opacity:0.4099099;fill:url(#radialGradient2518);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <rect
+ style="fill:#a40000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4467"
+ width="2"
+ height="2.5"
+ x="27"
+ y="24.5"
+ rx="1"
+ ry="0.83333331" />
+ <rect
+ style="fill:#f57900;fill-opacity:1;stroke:#ce5c00;stroke-width:1.18920708;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4399"
+ width="3"
+ height="14.142136"
+ x="0.5"
+ y="21.920321"
+ rx="0.9352566"
+ ry="1.3226526"
+ transform="matrix(1,0,0.7071068,0.7071068,0,0)" />
+ <path
+ style="opacity:0.6081081;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 27.09375,24.71875 L 19.375,17 C 19.005913,16.63091 18.159102,16.28125 18.0625,16.28125 L 13.9375,16.28125 C 13.840898,16.28125 12.994087,16.63091 12.625,17 L 4.90625,24.71875"
+ id="path4498"
+ sodipodi:nodetypes="cccccc" />
+ <rect
+ style="fill:#ef2929;fill-opacity:1;stroke:#cc0000;stroke-width:1.18920732;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4405"
+ width="5"
+ height="5.6568513"
+ x="-31.368853"
+ y="19.091869"
+ rx="1"
+ ry="1.4142128"
+ transform="matrix(-1,0,-0.707107,0.7071065,0,0)" />
+ <path
+ transform="matrix(1,0,0,1.2946278,-7.5,-29.700194)"
+ d="M 27,46.5 A 3.5,1.5 0 1 1 20,46.5 A 3.5,1.5 0 1 1 27,46.5 z"
+ sodipodi:ry="1.5"
+ sodipodi:rx="3.5"
+ sodipodi:cy="46.5"
+ sodipodi:cx="23.5"
+ id="path4469"
+ style="opacity:0.4099099;fill:url(#radialGradient2522);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <rect
+ style="fill:#a40000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4463"
+ width="2"
+ height="3"
+ x="15"
+ y="28"
+ rx="1"
+ ry="1" />
+ <rect
+ style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4397"
+ width="3"
+ height="14"
+ x="14.5"
+ y="15.5"
+ rx="1"
+ ry="1" />
+ <rect
+ style="fill:#ef2929;fill-opacity:1;stroke:#cc0000;stroke-width:1.18920732;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4401"
+ width="5"
+ height="5.6568518"
+ x="0.58447099"
+ y="19.0919"
+ rx="1"
+ ry="1.4142129"
+ transform="matrix(1,0,0.707107,0.7071065,0,0)" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="-0.96875"
+ inkscape:original="M 20.875 248.5 C 20.321001 248.5 19.429 248.946 18.875 249.5 L 16.875 251.5 C 16.320999 252.054 16.321 252.5 16.875 252.5 L 29.09375 252.5 C 29.64775 252.5 29.64775 252.054 29.09375 251.5 L 27.09375 249.5 C 26.53975 248.946 25.64775 248.50001 25.09375 248.5 L 20.875 248.5 z "
+ style="opacity:0.52702703;fill:none;fill-opacity:1;stroke:url(#linearGradient4565);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4508"
+ d="M 20.875,249.46875 C 20.840933,249.46875 19.932676,249.81732 19.5625,250.1875 L 18.21875,251.53125 L 27.75,251.53125 L 26.40625,250.1875 C 26.036077,249.81733 25.12785,249.46875 25.09375,249.46875 L 20.875,249.46875 z"
+ transform="translate(-7,-235)" />
+ <rect
+ style="fill:#ef2929;fill-opacity:1;stroke:#cc0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4395"
+ width="5"
+ height="4"
+ x="13.5"
+ y="15.5"
+ rx="1"
+ ry="1" />
+ <rect
+ style="fill:url(#linearGradient2501);fill-opacity:1;stroke:#2e3436;stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4441"
+ width="7"
+ height="2"
+ x="12.5"
+ y="12.5" />
+ <path
+ style="fill:url(#linearGradient2498);fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 9.5,1.5 C 8.946,1.5 8.5,1.946 8.5,2.5 L 8.5,11.46875 C 8.5,12.04006 8.959938,12.5 9.53125,12.5 L 21.46875,12.5 C 22.04006,12.5 22.5,12.04006 22.5,11.46875 L 22.5,2.5 C 22.5,1.946 22.054,1.5 21.5,1.5 L 19.5,1.5 C 18.946,1.5 18.5,1.946 18.5,2.5 L 18.5,9.5 L 12.5,9.5 L 12.5,2.5 C 12.5,1.946 13.054,1.5 12.5,1.5 L 9.5,1.5 z"
+ id="path4309"
+ sodipodi:nodetypes="ccccccccccccccc" />
+ <rect
+ style="opacity:0.481982;fill:#ce5c00;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4311"
+ width="9"
+ height="2"
+ x="10"
+ y="9"
+ rx="1"
+ ry="1" />
+ <rect
+ style="fill:#f57900;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4313"
+ width="2"
+ height="9"
+ x="10"
+ y="1"
+ rx="0.5"
+ ry="0.5" />
+ <path
+ style="fill:url(#linearGradient2493);fill-opacity:1;stroke:#ce5c00;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 12.002602,0.5 L 17.997398,0.5 C 18.82984,0.5 19.5,1.17016 19.5,2.0026 L 19.5,5.9974 C 19.5,6.82984 18.82984,7.5 17.997398,7.5 L 12.002602,7.5 C 11.17016,7.5 10.5,6.82984 10.5,5.9974 L 10.5,2.0026 C 10.5,1.17016 11.17016,0.5 12.002602,0.5 z"
+ id="path4317"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ style="fill:#f57900;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 17.967801,1 L 18.032199,1 C 18.568361,1 19,1.37768 19,1.84683 L 19,6.15317 C 19,6.62232 18.568361,7 18.032199,7 L 17.967801,7 C 17.431639,7 17,6.62232 17,6.15317 L 17,1.84683 C 17,1.37768 17.431639,1 17.967801,1 z"
+ id="path4319"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path4321"
+ d="M 12,1.5 C 11.702178,1.5 11.5,1.70218 11.5,2 L 11.5,6 C 11.5,6.29782 11.702178,6.5 12,6.5 L 18,6.5 C 18.297822,6.5 18.5,6.29782 18.5,6 L 18.5,2 C 18.5,1.70218 18.297822,1.5 18,1.5 L 12,1.5 z"
+ style="opacity:0.63963964;fill:none;fill-opacity:1;stroke:url(#linearGradient2489);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="fill:url(#linearGradient2486);fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 22.5,11.46875 L 22.5,2.5 C 22.5,1.946 22.054,1.5 21.5,1.5 L 19.5,1.5 C 18.946,1.5 18.5,1.946 18.5,2.5 L 18.5,9.5"
+ id="path4323"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="rect4325"
+ d="M 20.5,2 L 21.5,2 C 21.777,2 22,2.223 22,2.5 L 22,11.5 C 22,11.777 21.777,12 21.5,12 L 20.5,12 C 20.223,12 20,11.777 20,11.5 L 20,2.5 C 20,2.223 20.223,2 20.5,2 z"
+ style="fill:#f57900;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:0.5;fill:none;fill-opacity:1;stroke:url(#linearGradient2482);stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 9.5,2.5 L 9.5,11.46875 C 9.5,11.49575 9.504253,11.5 9.53125,11.5 L 21.46875,11.5 C 21.49574,11.5 21.5,11.49574 21.5,11.46875 L 21.5,2.5 L 19.5,2.5 L 19.5,9.5"
+ id="path4329"
+ sodipodi:nodetypes="cccccccc" />
+ <g
+ id="g4331"
+ transform="translate(-10,-83)">
+ <path
+ sodipodi:nodetypes="cccsccc"
+ id="path4333"
+ d="M 27.5,88.5 C 27.5,86.844 26.156,85.5 24.5,85.5 L 23.5,85.5 C 21.844,85.5 20.5,86.844 20.5,88.5 C 20.5,90.156 21.844,91.5 23.5,91.5 L 24.5,91.5 C 26.156,91.5 27.5,90.156 27.5,88.5 z"
+ style="fill:url(#linearGradient4579);fill-opacity:1;stroke:#2e3436;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <g
+ style="stroke:none"
+ transform="matrix(0.272494,0,0,0.2719644,56.817826,61.883567)"
+ id="g4335">
+ <g
+ transform="matrix(0.7957586,0,0,0.7854084,-52.69391,41.637513)"
+ id="g4337"
+ style="stroke:none;display:inline">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient4581);fill-opacity:1;fill-rule:nonzero;stroke:#888a85;stroke-width:2.08250856;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+ id="path4339"
+ sodipodi:cx="15.75"
+ sodipodi:cy="22.5625"
+ sodipodi:rx="4.125"
+ sodipodi:ry="4.1875"
+ d="M 19.875,22.5625 A 4.125,4.1875 0 1 1 11.625,22.5625 A 4.125,4.1875 0 1 1 19.875,22.5625 z"
+ transform="matrix(2.23121,0,0,2.2312076,-122.56757,21.243795)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.60759499;fill:#ffffff;fill-opacity:0.52866247;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+ id="path4341"
+ sodipodi:cx="14.75"
+ sodipodi:cy="22.6875"
+ sodipodi:rx="1.75"
+ sodipodi:ry="1.8125"
+ d="M 16.5,22.6875 A 1.75,1.8125 0 1 1 13,22.6875 A 1.75,1.8125 0 1 1 16.5,22.6875 z"
+ transform="matrix(1.676984,0,0,1.676984,-111.83457,33.611503)" />
+ <path
+ transform="matrix(1.673245,0,0,1.673245,-114.00058,31.80613)"
+ d="M 16.5,22.6875 A 1.75,1.8125 0 1 1 13,22.6875 A 1.75,1.8125 0 1 1 16.5,22.6875 z"
+ sodipodi:ry="1.8125"
+ sodipodi:rx="1.75"
+ sodipodi:cy="22.6875"
+ sodipodi:cx="14.75"
+ id="path4343"
+ style="opacity:0.37341769;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient4583);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+ id="path4345"
+ sodipodi:cx="14.75"
+ sodipodi:cy="22.6875"
+ sodipodi:rx="1.75"
+ sodipodi:ry="1.8125"
+ d="M 16.5,22.6875 A 1.75,1.8125 0 1 1 13,22.6875 A 1.75,1.8125 0 1 1 16.5,22.6875 z"
+ transform="matrix(0.41273,0,0,0.41273,-89.88316,65.788647)" />
+ <path
+ transform="matrix(0.45611,0,0,0.45611,-97.03183,58.199937)"
+ d="M 16.5,22.6875 A 1.75,1.8125 0 1 1 13,22.6875 A 1.75,1.8125 0 1 1 16.5,22.6875 z"
+ sodipodi:ry="1.8125"
+ sodipodi:rx="1.75"
+ sodipodi:cy="22.6875"
+ sodipodi:cx="14.75"
+ id="path4347"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+ sodipodi:type="arc" />
+ </g>
+ <path
+ id="path4349"
+ d="M -122.01561,95.523589 C -123.30471,95.523589 -124.32811,96.612063 -124.32811,97.929839 C -124.32811,98.234686 -124.27389,98.505482 -124.17186,98.773589 C -124.03914,98.797627 -123.90505,98.804839 -123.76561,98.804839 C -122.47938,98.804839 -121.45311,97.744677 -121.45311,96.429839 C -121.45311,96.134546 -121.48189,95.847111 -121.57811,95.586089 C -121.72078,95.558211 -121.86503,95.523589 -122.01561,95.523589 z"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans" />
+ </g>
+ </g>
+ <path
+ style="opacity:0.518018;fill:none;fill-opacity:1;stroke:url(#linearGradient2469);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 17.46875,18.46875 L 17.46875,16.53125 L 16.5,16.53125 L 15.5,16.53125 L 14.53125,16.53125 L 14.53125,18.46875 C 15.08853,18.4857 15.531452,18.94246 15.53125,19.5 L 15.53125,28.46875"
+ id="path4452"
+ sodipodi:nodetypes="cccccccc" />
+ </g>
+</svg>
diff --git a/data/icons/48x48/totalopenstation.png b/data/icons/48x48/totalopenstation.png
new file mode 100644
index 0000000..3c8a8e1
Binary files /dev/null and b/data/icons/48x48/totalopenstation.png differ
diff --git a/data/icons/48x48/totalopenstation.svg b/data/icons/48x48/totalopenstation.svg
new file mode 100644
index 0000000..81881cd
--- /dev/null
+++ b/data/icons/48x48/totalopenstation.svg
@@ -0,0 +1,770 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="48"
+ height="48"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docbase="/home/lapo/Modelli"
+ sodipodi:docname="total-station.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3606">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3608" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3610" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3578">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3580" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3582" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2798">
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:1;"
+ offset="0"
+ id="stop2800" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1"
+ id="stop2802" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2776">
+ <stop
+ id="stop2778"
+ offset="0"
+ style="stop-color:#555753;stop-opacity:1" />
+ <stop
+ style="stop-color:#babdb6;stop-opacity:1"
+ offset="0.21264227"
+ id="stop2780" />
+ <stop
+ id="stop2782"
+ offset="1"
+ style="stop-color:#555753;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4261">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop4263" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4265" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4224">
+ <stop
+ style="stop-color:#cc0000;stop-opacity:1;"
+ offset="0"
+ id="stop4226" />
+ <stop
+ style="stop-color:#cc0000;stop-opacity:0;"
+ offset="1"
+ id="stop4228" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4191">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0"
+ id="stop4193" />
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:1"
+ offset="1"
+ id="stop4195" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4183">
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:1"
+ offset="0"
+ id="stop4185" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1"
+ id="stop4187" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4155">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop4157" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop4159" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4143">
+ <stop
+ style="stop-color:#555753;stop-opacity:1;"
+ offset="0"
+ id="stop4145" />
+ <stop
+ id="stop4151"
+ offset="0.41101107"
+ style="stop-color:#babdb6;stop-opacity:1" />
+ <stop
+ style="stop-color:#555753;stop-opacity:1"
+ offset="1"
+ id="stop4147" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4079">
+ <stop
+ style="stop-color:#f57900;stop-opacity:1"
+ offset="0"
+ id="stop4081" />
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:1"
+ offset="1"
+ id="stop4083" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2818">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2820" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2822" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2591">
+ <stop
+ style="stop-color:#7a7a7a;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2593" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop2595" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4143"
+ id="linearGradient2718"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3333334,0,0,1,-7.8333338,0)"
+ x1="21.1875"
+ y1="17.46875"
+ x2="25.752674"
+ y2="17.46875" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2776"
+ id="linearGradient3646"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,1,-1,0,31,65)"
+ x1="21.218287"
+ y1="5.3125"
+ x2="25.718859"
+ y2="5.3125" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2591"
+ id="radialGradient3648"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.013514,0,-0.304899)"
+ cx="16.875"
+ cy="23.672499"
+ fx="16.875"
+ fy="23.672499"
+ r="4.625" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2818"
+ id="radialGradient3650"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.035714,0,-0.810268)"
+ cx="14.75"
+ cy="22.6875"
+ fx="14.75"
+ fy="22.6875"
+ r="1.75" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3606"
+ id="linearGradient3695"
+ gradientUnits="userSpaceOnUse"
+ x1="24.17202"
+ y1="83.353554"
+ x2="33.47496"
+ y2="88.212944"
+ gradientTransform="translate(-1,0)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3578"
+ id="linearGradient3713"
+ gradientUnits="userSpaceOnUse"
+ x1="22.5"
+ y1="81.5"
+ x2="24"
+ y2="96.5"
+ gradientTransform="translate(-1,0)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2798"
+ id="linearGradient3717"
+ gradientUnits="userSpaceOnUse"
+ x1="21.625"
+ y1="84.438705"
+ x2="21.625"
+ y2="79.999496"
+ gradientTransform="translate(-1,0)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4155"
+ id="radialGradient4111"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.4285714,0,26.571429)"
+ cx="23.5"
+ cy="46.5"
+ fx="23.5"
+ fy="46.5"
+ r="3.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4155"
+ id="radialGradient4113"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.4285714,0,26.571429)"
+ cx="23.5"
+ cy="46.5"
+ fx="23.5"
+ fy="46.5"
+ r="3.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4155"
+ id="radialGradient4115"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.4285714,0,26.571429)"
+ cx="23.5"
+ cy="46.5"
+ fx="23.5"
+ fy="46.5"
+ r="3.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4155"
+ id="radialGradient4117"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.4285714,0,26.571429)"
+ cx="23.5"
+ cy="46.5"
+ fx="23.5"
+ fy="46.5"
+ r="3.5" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4191"
+ id="linearGradient4119"
+ gradientUnits="userSpaceOnUse"
+ x1="-33.119381"
+ y1="0.082910016"
+ x2="-37.51059"
+ y2="48.836018" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4183"
+ id="linearGradient4121"
+ gradientUnits="userSpaceOnUse"
+ x1="-32.823372"
+ y1="43.10767"
+ x2="-32.329445"
+ y2="10.316925" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4079"
+ id="linearGradient4123"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.5,0,0,1,-11.75,120)"
+ x1="23.5"
+ y1="24.625"
+ x2="23.5"
+ y2="40.9375" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4224"
+ id="linearGradient4126"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3333333,0,0,1,-34.5,120)"
+ x1="40.5625"
+ y1="22.718882"
+ x2="40.5625"
+ y2="19" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4261"
+ id="linearGradient4128"
+ gradientUnits="userSpaceOnUse"
+ x1="22.5"
+ y1="41.625"
+ x2="26.002232"
+ y2="41.625" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="105.66276"
+ inkscape:cy="89.692581"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ inkscape:showpageshadow="false"
+ width="48px"
+ height="48px"
+ inkscape:window-width="872"
+ inkscape:window-height="713"
+ inkscape:window-x="655"
+ inkscape:window-y="289"
+ showgrid="false"
+ objecttolerance="10000"
+ gridtolerance="10000"
+ guidetolerance="10000"
+ inkscape:snap-intersection-grid-guide="true"
+ inkscape:snap-global="true"
+ inkscape:snap-nodes="true"
+ inkscape:snap-bbox="true"
+ showborder="false"
+ showguides="true"
+ inkscape:guide-bbox="true">
+ <inkscape:grid
+ id="GridFromPre046Settings"
+ type="xygrid"
+ originx="0px"
+ originy="0px"
+ spacingx="0.5px"
+ spacingy="0.5px"
+ color="#0000ff"
+ empcolor="#0000ff"
+ opacity="0.2"
+ empopacity="0.4"
+ empspacing="2"
+ visible="true"
+ enabled="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Lapo Calamandrei</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Livello 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ id="g4040"
+ transform="translate(0,-120)">
+ <path
+ transform="matrix(5.474134,0,0,4.1484779,-105.14215,-30.691064)"
+ d="M 27,46.5 A 3.5,1.5 0 1 1 20,46.5 A 3.5,1.5 0 1 1 27,46.5 z"
+ sodipodi:ry="1.5"
+ sodipodi:rx="3.5"
+ sodipodi:cy="46.5"
+ sodipodi:cx="23.5"
+ id="path3966"
+ style="opacity:0.13963964;fill:url(#radialGradient4111);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="translate(0,120)"
+ d="M 27,46.5 A 3.5,1.5 0 1 1 20,46.5 A 3.5,1.5 0 1 1 27,46.5 z"
+ sodipodi:ry="1.5"
+ sodipodi:rx="3.5"
+ sodipodi:cy="46.5"
+ sodipodi:cx="23.5"
+ id="path3968"
+ style="opacity:0.4099099;fill:url(#radialGradient4113);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ id="path3970"
+ d="M 22.5,165 L 23.5,166.59375 L 24.5,165 L 24.5,163.5 L 22.5,163.5 L 22.5,165 z"
+ style="fill:#ef2929;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
+ <path
+ transform="translate(15.5,117)"
+ d="M 27,46.5 A 3.5,1.5 0 1 1 20,46.5 A 3.5,1.5 0 1 1 27,46.5 z"
+ sodipodi:ry="1.5"
+ sodipodi:rx="3.5"
+ sodipodi:cy="46.5"
+ sodipodi:cx="23.5"
+ id="path3972"
+ style="opacity:0.4099099;fill:url(#radialGradient4115);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ id="path3974"
+ d="M 39.5,162 L 39.416419,163.59375 L 37.406509,162 L 36.5,160.5 L 38.593491,160.5 L 39.5,162 z"
+ style="fill:#ef2929;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
+ <path
+ transform="translate(-15.5,117)"
+ d="M 27,46.5 A 3.5,1.5 0 1 1 20,46.5 A 3.5,1.5 0 1 1 27,46.5 z"
+ sodipodi:ry="1.5"
+ sodipodi:rx="3.5"
+ sodipodi:cy="46.5"
+ sodipodi:cx="23.5"
+ id="path3976"
+ style="opacity:0.4099099;fill:url(#radialGradient4117);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <g
+ transform="translate(-0.9722664,120)"
+ id="g3978">
+ <rect
+ ry="1.296415"
+ rx="1.296415"
+ style="opacity:1;fill:#f57900;fill-opacity:1;stroke:#ba5200;stroke-width:1.07348442;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3980"
+ width="4.4738688"
+ height="24.199741"
+ x="-36.139385"
+ y="22.471193"
+ transform="matrix(-1,0,-0.4969526,0.8677777,0,0)" />
+ <path
+ style="fill:#ef2929;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.5000003,42 L 8.5835808,43.59375 L 10.593491,42 L 11.5,40.5 L 9.4065092,40.5 L 8.5000003,42 z"
+ id="path3982"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ style="fill:#f57900;fill-opacity:1;stroke:url(#linearGradient4119);stroke-width:1.07348442;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M -32.8125,45.5 L -32.8125,23.625"
+ id="path3984"
+ sodipodi:nodetypes="cc"
+ transform="matrix(-1,0,-0.4969526,0.8677777,0,0)" />
+ <rect
+ transform="translate(0.593491,3)"
+ y="21"
+ x="30"
+ height="0"
+ width="0"
+ id="rect3986"
+ style="opacity:1;fill:#f57900;fill-opacity:1;stroke:#fcaf3e;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ transform="matrix(-1,0,0,1,47.972266,120)"
+ id="g3988">
+ <rect
+ ry="1.0803459"
+ rx="1.0803459"
+ style="opacity:1;fill:#f57900;fill-opacity:1;stroke:#ba5200;stroke-width:1.07348442;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3990"
+ width="4.4738579"
+ height="24.199741"
+ x="-36.139385"
+ y="22.471193"
+ transform="matrix(-1,0,-0.4969526,0.8677777,0,0)" />
+ <path
+ style="fill:#ef2929;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.5000003,42 L 8.5835808,43.59375 L 10.593491,42 L 11.5,40.5 L 9.4065092,40.5 L 8.5000003,42 z"
+ id="path3992"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ style="fill:#f57900;fill-opacity:1;stroke:url(#linearGradient4121);stroke-width:1.07348442;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M -32.8125,45.5 L -32.8125,23.625"
+ id="path3994"
+ sodipodi:nodetypes="cc"
+ transform="matrix(-1,0,-0.4969526,0.8677777,0,0)" />
+ <rect
+ transform="translate(0.593491,3)"
+ y="21"
+ x="30"
+ height="0"
+ width="0"
+ id="rect3996"
+ style="opacity:1;fill:#f57900;fill-opacity:1;stroke:#fcaf3e;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <rect
+ ry="0.9375"
+ rx="1.40625"
+ y="139.5"
+ x="20.5"
+ height="24"
+ width="6"
+ id="rect3998"
+ style="opacity:1;fill:url(#linearGradient4123);fill-opacity:1;stroke:#ce5c00;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ transform="matrix(1,0,-0.4472137,0.8944272,0,0)"
+ y="154.84773"
+ x="87.750015"
+ height="6.7082086"
+ width="6"
+ id="rect4002"
+ style="fill:#ef2929;fill-opacity:1;stroke:#cc0000;stroke-width:1.05737126;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ rx="0.83998001"
+ ry="0.83998013" />
+ <rect
+ transform="matrix(-1,0,0.4472137,0.8944272,0,0)"
+ y="154.84773"
+ x="40.750019"
+ height="6.7082086"
+ width="6"
+ id="rect4004"
+ style="fill:#ef2929;fill-opacity:1;stroke:#cc0000;stroke-width:1.05737126;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ rx="0.88939059"
+ ry="0.88939071" />
+ <rect
+ y="139.5"
+ x="19.5"
+ height="6.9999995"
+ width="8"
+ id="rect4006"
+ style="fill:#ef2929;fill-opacity:1;stroke:url(#linearGradient4126);stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path4008"
+ d="M 19.101185,139.5 L 17.053558,143.50002 L 19.101185,139.5 z"
+ style="opacity:0.518018;fill:#ef2929;fill-opacity:1;stroke:#ffffff;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path4010"
+ d="M 20.5,20.5 L 20.5,25.5 C 21.052262,25.500055 21.499945,25.947738 21.5,26.5 L 21.5,42.5 L 25.5,42.5 L 25.5,26.5 C 25.500055,25.947738 25.947738,25.500055 26.5,25.5 L 26.5,20.5 L 20.5,20.5 z"
+ style="opacity:0.36036036;fill:none;fill-opacity:1;stroke:url(#linearGradient4128);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ transform="translate(0,120)" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path4012"
+ d="M 27.866058,139.5 L 29.913685,143.50002 L 27.866058,139.5 z"
+ style="opacity:0.37837842;fill:#ef2929;fill-opacity:1;stroke:#ffffff;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 20.5,139.5 L 26.5,139.5"
+ id="path4014" />
+ </g>
+ <rect
+ style="opacity:1;fill:url(#linearGradient2718);fill-opacity:1;stroke:#2e3436;stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect2578"
+ width="8"
+ height="2"
+ x="19.5"
+ y="16.5" />
+ <g
+ id="g3792"
+ transform="translate(0,-80)">
+ <path
+ sodipodi:nodetypes="ccccccccccccccc"
+ id="path2584"
+ d="M 15.5,82.5 C 14.946,82.5 14.5,82.946 14.5,83.5 L 14.5,95.46875 C 14.5,96.04006 14.959938,96.5 15.53125,96.5 L 30.46875,96.5 C 31.040062,96.5 31.500001,96.04006 31.5,95.46875 L 31.5,83.5 C 31.5,82.946 31.054,82.5 30.5,82.5 L 26.5,82.5 C 25.946,82.5 25.5,82.946 25.5,83.5 L 25.5,93.5 L 20.5,93.5 L 20.5,83.5 C 20.5,82.946 20.054,82.5 19.5,82.5 L 15.5,82.5 z"
+ style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ ry="0.5"
+ rx="0.5"
+ y="83"
+ x="15"
+ height="1"
+ width="2"
+ id="rect2588"
+ style="fill:#fcaf3e;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ ry="1"
+ rx="1"
+ y="93"
+ x="18"
+ height="2"
+ width="8"
+ id="rect2586"
+ style="opacity:0.27927928;fill:#ce5c00;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ ry="0.40625"
+ rx="0.40625"
+ y="83"
+ x="18"
+ height="11"
+ width="2"
+ id="rect2796"
+ style="fill:#f57900;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="fill:url(#linearGradient3717);fill-opacity:1;stroke:#ce5c00;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 19.002602,80.5 L 25.997398,80.5 C 26.82984,80.5 27.5,81.17016 27.5,82.002602 L 27.5,89.997398 C 27.5,90.82984 26.82984,91.5 25.997398,91.5 L 19.002602,91.5 C 18.17016,91.5 17.5,90.82984 17.5,89.997398 L 17.5,82.002602 C 17.5,81.17016 18.17016,80.5 19.002602,80.5 z"
+ id="rect2582"
+ sodipodi:nodetypes="ccccccccc" />
+ <rect
+ ry="1"
+ rx="1"
+ y="81"
+ x="24"
+ height="10"
+ width="3"
+ id="rect2594"
+ style="fill:#f57900;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:0.35135133;fill:none;fill-opacity:1;stroke:url(#linearGradient3713);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 19.065102,81.5 L 25.934898,81.5 C 26.247965,81.5 26.5,81.752035 26.5,82.065102 L 26.5,89.934898 C 26.5,90.247965 26.247965,90.5 25.934898,90.5 L 19.065102,90.5 C 18.752035,90.5 18.5,90.247965 18.5,89.934898 L 18.5,82.065102 C 18.5,81.752035 18.752035,81.5 19.065102,81.5 z"
+ id="rect2806"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ id="path2788"
+ d="M 31.5,95.46875 L 31.5,83.5 C 31.5,82.946 31.054,82.5 30.5,82.5 L 26.5,82.5 C 25.946,82.5 25.5,82.946 25.5,83.5 L 25.5,93.5"
+ style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ ry="0.40625"
+ rx="0.40625"
+ y="83"
+ x="29"
+ height="13"
+ width="2"
+ id="rect2792"
+ style="fill:#f57900;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ ry="0.5"
+ rx="0.5"
+ y="83"
+ x="26"
+ height="1"
+ width="5"
+ id="rect2590"
+ style="fill:#fcaf3e;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <g
+ transform="translate(-4,0)"
+ id="g2763">
+ <path
+ style="fill:url(#linearGradient3646);fill-opacity:1;stroke:#2e3436;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 27.5,88.5 C 27.5,86.844 26.156,85.5 24.5,85.5 L 23.5,85.5 C 21.844,85.5 20.5,86.844 20.5,88.5 C 20.5,90.156 21.844,91.5 23.5,91.5 L 24.5,91.5 C 26.156,91.5 27.5,90.156 27.5,88.5 z"
+ id="path2598"
+ sodipodi:nodetypes="cccsccc" />
+ <g
+ id="g2600"
+ transform="matrix(0.272494,0,0,0.2719644,56.817826,61.883567)"
+ style="stroke:none">
+ <g
+ style="stroke:none;display:inline"
+ id="g2602"
+ transform="matrix(0.7957586,0,0,0.7854084,-52.69391,41.637513)">
+ <path
+ transform="matrix(2.23121,0,0,2.2312076,-122.56757,21.243795)"
+ d="M 19.875,22.5625 A 4.125,4.1875 0 1 1 11.625,22.5625 A 4.125,4.1875 0 1 1 19.875,22.5625 z"
+ sodipodi:ry="4.1875"
+ sodipodi:rx="4.125"
+ sodipodi:cy="22.5625"
+ sodipodi:cx="15.75"
+ id="path2604"
+ style="fill:url(#radialGradient3648);fill-opacity:1;fill-rule:nonzero;stroke:#888a85;stroke-width:2.08250856;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.676984,0,0,1.676984,-111.83457,33.611503)"
+ d="M 16.5,22.6875 A 1.75,1.8125 0 1 1 13,22.6875 A 1.75,1.8125 0 1 1 16.5,22.6875 z"
+ sodipodi:ry="1.8125"
+ sodipodi:rx="1.75"
+ sodipodi:cy="22.6875"
+ sodipodi:cx="14.75"
+ id="path2606"
+ style="opacity:0.60759499;fill:#ffffff;fill-opacity:0.52866247;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.37341769;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+ id="path2608"
+ sodipodi:cx="14.75"
+ sodipodi:cy="22.6875"
+ sodipodi:rx="1.75"
+ sodipodi:ry="1.8125"
+ d="M 16.5,22.6875 A 1.75,1.8125 0 1 1 13,22.6875 A 1.75,1.8125 0 1 1 16.5,22.6875 z"
+ transform="matrix(1.673245,0,0,1.673245,-114.00058,31.80613)" />
+ <path
+ transform="matrix(0.41273,0,0,0.41273,-89.88316,65.788647)"
+ d="M 16.5,22.6875 A 1.75,1.8125 0 1 1 13,22.6875 A 1.75,1.8125 0 1 1 16.5,22.6875 z"
+ sodipodi:ry="1.8125"
+ sodipodi:rx="1.75"
+ sodipodi:cy="22.6875"
+ sodipodi:cx="14.75"
+ id="path2610"
+ style="fill:url(#radialGradient3650);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+ id="path2612"
+ sodipodi:cx="14.75"
+ sodipodi:cy="22.6875"
+ sodipodi:rx="1.75"
+ sodipodi:ry="1.8125"
+ d="M 16.5,22.6875 A 1.75,1.8125 0 1 1 13,22.6875 A 1.75,1.8125 0 1 1 16.5,22.6875 z"
+ transform="matrix(0.45611,0,0,0.45611,-97.03183,58.199937)" />
+ </g>
+ <path
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+ d="M -122.01561,95.523589 C -123.30471,95.523589 -124.32811,96.612063 -124.32811,97.929839 C -124.32811,98.234686 -124.27389,98.505482 -124.17186,98.773589 C -124.03914,98.797627 -123.90505,98.804839 -123.76561,98.804839 C -122.47938,98.804839 -121.45311,97.744677 -121.45311,96.429839 C -121.45311,96.134546 -121.48189,95.847111 -121.57811,95.586089 C -121.72078,95.558211 -121.86503,95.523589 -122.01561,95.523589 z"
+ id="path2614" />
+ </g>
+ </g>
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path3600"
+ d="M 16.5,83.5 L 15.5,83.5 L 15.5,95.46875 C 15.5,95.50335 15.496644,95.5 15.53125,95.5 L 30.46875,95.5 C 30.503356,95.5 30.5,95.50335 30.5,95.46875 L 30.5,83.5 L 26.5,83.5 L 26.5,93.5"
+ style="opacity:0.63063061;fill:none;fill-opacity:1;stroke:url(#linearGradient3695);stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ </g>
+</svg>
diff --git a/data/totalopenstation.desktop b/data/totalopenstation.desktop
new file mode 100644
index 0000000..67d07f0
--- /dev/null
+++ b/data/totalopenstation.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Terminal=false
+Exec=totalopenstation-gui.py
+Name=Total Open Station
+Comment=Download and export survey data from your total station
diff --git a/distribute_setup.py b/distribute_setup.py
deleted file mode 100644
index 3ea2e66..0000000
--- a/distribute_setup.py
+++ /dev/null
@@ -1,485 +0,0 @@
-#!python
-"""Bootstrap distribute installation
-
-If you want to use setuptools in your package's setup.py, just include this
-file in the same directory with it, and add this to the top of your setup.py::
-
- from distribute_setup import use_setuptools
- use_setuptools()
-
-If you want to require a specific version of setuptools, set a download
-mirror, or use an alternate download directory, you can do so by supplying
-the appropriate options to ``use_setuptools()``.
-
-This file can also be run as a script to install or upgrade setuptools.
-"""
-import os
-import sys
-import time
-import fnmatch
-import tempfile
-import tarfile
-from distutils import log
-
-try:
- from site import USER_SITE
-except ImportError:
- USER_SITE = None
-
-try:
- import subprocess
-
- def _python_cmd(*args):
- args = (sys.executable,) + args
- return subprocess.call(args) == 0
-
-except ImportError:
- # will be used for python 2.3
- def _python_cmd(*args):
- args = (sys.executable,) + args
- # quoting arguments if windows
- if sys.platform == 'win32':
- def quote(arg):
- if ' ' in arg:
- return '"%s"' % arg
- return arg
- args = [quote(arg) for arg in args]
- return os.spawnl(os.P_WAIT, sys.executable, *args) == 0
-
-DEFAULT_VERSION = "0.6.14"
-DEFAULT_URL = "http://pypi.python.org/packages/source/d/distribute/"
-SETUPTOOLS_FAKED_VERSION = "0.6c11"
-
-SETUPTOOLS_PKG_INFO = """\
-Metadata-Version: 1.0
-Name: setuptools
-Version: %s
-Summary: xxxx
-Home-page: xxx
-Author: xxx
-Author-email: xxx
-License: xxx
-Description: xxx
-""" % SETUPTOOLS_FAKED_VERSION
-
-
-def _install(tarball):
- # extracting the tarball
- tmpdir = tempfile.mkdtemp()
- log.warn('Extracting in %s', tmpdir)
- old_wd = os.getcwd()
- try:
- os.chdir(tmpdir)
- tar = tarfile.open(tarball)
- _extractall(tar)
- tar.close()
-
- # going in the directory
- subdir = os.path.join(tmpdir, os.listdir(tmpdir)[0])
- os.chdir(subdir)
- log.warn('Now working in %s', subdir)
-
- # installing
- log.warn('Installing Distribute')
- if not _python_cmd('setup.py', 'install'):
- log.warn('Something went wrong during the installation.')
- log.warn('See the error message above.')
- finally:
- os.chdir(old_wd)
-
-
-def _build_egg(egg, tarball, to_dir):
- # extracting the tarball
- tmpdir = tempfile.mkdtemp()
- log.warn('Extracting in %s', tmpdir)
- old_wd = os.getcwd()
- try:
- os.chdir(tmpdir)
- tar = tarfile.open(tarball)
- _extractall(tar)
- tar.close()
-
- # going in the directory
- subdir = os.path.join(tmpdir, os.listdir(tmpdir)[0])
- os.chdir(subdir)
- log.warn('Now working in %s', subdir)
-
- # building an egg
- log.warn('Building a Distribute egg in %s', to_dir)
- _python_cmd('setup.py', '-q', 'bdist_egg', '--dist-dir', to_dir)
-
- finally:
- os.chdir(old_wd)
- # returning the result
- log.warn(egg)
- if not os.path.exists(egg):
- raise IOError('Could not build the egg.')
-
-
-def _do_download(version, download_base, to_dir, download_delay):
- egg = os.path.join(to_dir, 'distribute-%s-py%d.%d.egg'
- % (version, sys.version_info[0], sys.version_info[1]))
- if not os.path.exists(egg):
- tarball = download_setuptools(version, download_base,
- to_dir, download_delay)
- _build_egg(egg, tarball, to_dir)
- sys.path.insert(0, egg)
- import setuptools
- setuptools.bootstrap_install_from = egg
-
-
-def use_setuptools(version=DEFAULT_VERSION, download_base=DEFAULT_URL,
- to_dir=os.curdir, download_delay=15, no_fake=True):
- # making sure we use the absolute path
- to_dir = os.path.abspath(to_dir)
- was_imported = 'pkg_resources' in sys.modules or \
- 'setuptools' in sys.modules
- try:
- try:
- import pkg_resources
- if not hasattr(pkg_resources, '_distribute'):
- if not no_fake:
- _fake_setuptools()
- raise ImportError
- except ImportError:
- return _do_download(version, download_base, to_dir, download_delay)
- try:
- pkg_resources.require("distribute>="+version)
- return
- except pkg_resources.VersionConflict:
- e = sys.exc_info()[1]
- if was_imported:
- sys.stderr.write(
- "The required version of distribute (>=%s) is not available,\n"
- "and can't be installed while this script is running. Please\n"
- "install a more recent version first, using\n"
- "'easy_install -U distribute'."
- "\n\n(Currently using %r)\n" % (version, e.args[0]))
- sys.exit(2)
- else:
- del pkg_resources, sys.modules['pkg_resources'] # reload ok
- return _do_download(version, download_base, to_dir,
- download_delay)
- except pkg_resources.DistributionNotFound:
- return _do_download(version, download_base, to_dir,
- download_delay)
- finally:
- if not no_fake:
- _create_fake_setuptools_pkg_info(to_dir)
-
-def download_setuptools(version=DEFAULT_VERSION, download_base=DEFAULT_URL,
- to_dir=os.curdir, delay=15):
- """Download distribute from a specified location and return its filename
-
- `version` should be a valid distribute version number that is available
- as an egg for download under the `download_base` URL (which should end
- with a '/'). `to_dir` is the directory where the egg will be downloaded.
- `delay` is the number of seconds to pause before an actual download
- attempt.
- """
- # making sure we use the absolute path
- to_dir = os.path.abspath(to_dir)
- try:
- from urllib.request import urlopen
- except ImportError:
- from urllib2 import urlopen
- tgz_name = "distribute-%s.tar.gz" % version
- url = download_base + tgz_name
- saveto = os.path.join(to_dir, tgz_name)
- src = dst = None
- if not os.path.exists(saveto): # Avoid repeated downloads
- try:
- log.warn("Downloading %s", url)
- src = urlopen(url)
- # Read/write all in one block, so we don't create a corrupt file
- # if the download is interrupted.
- data = src.read()
- dst = open(saveto, "wb")
- dst.write(data)
- finally:
- if src:
- src.close()
- if dst:
- dst.close()
- return os.path.realpath(saveto)
-
-def _no_sandbox(function):
- def __no_sandbox(*args, **kw):
- try:
- from setuptools.sandbox import DirectorySandbox
- if not hasattr(DirectorySandbox, '_old'):
- def violation(*args):
- pass
- DirectorySandbox._old = DirectorySandbox._violation
- DirectorySandbox._violation = violation
- patched = True
- else:
- patched = False
- except ImportError:
- patched = False
-
- try:
- return function(*args, **kw)
- finally:
- if patched:
- DirectorySandbox._violation = DirectorySandbox._old
- del DirectorySandbox._old
-
- return __no_sandbox
-
-def _patch_file(path, content):
- """Will backup the file then patch it"""
- existing_content = open(path).read()
- if existing_content == content:
- # already patched
- log.warn('Already patched.')
- return False
- log.warn('Patching...')
- _rename_path(path)
- f = open(path, 'w')
- try:
- f.write(content)
- finally:
- f.close()
- return True
-
-_patch_file = _no_sandbox(_patch_file)
-
-def _same_content(path, content):
- return open(path).read() == content
-
-def _rename_path(path):
- new_name = path + '.OLD.%s' % time.time()
- log.warn('Renaming %s into %s', path, new_name)
- os.rename(path, new_name)
- return new_name
-
-def _remove_flat_installation(placeholder):
- if not os.path.isdir(placeholder):
- log.warn('Unkown installation at %s', placeholder)
- return False
- found = False
- for file in os.listdir(placeholder):
- if fnmatch.fnmatch(file, 'setuptools*.egg-info'):
- found = True
- break
- if not found:
- log.warn('Could not locate setuptools*.egg-info')
- return
-
- log.warn('Removing elements out of the way...')
- pkg_info = os.path.join(placeholder, file)
- if os.path.isdir(pkg_info):
- patched = _patch_egg_dir(pkg_info)
- else:
- patched = _patch_file(pkg_info, SETUPTOOLS_PKG_INFO)
-
- if not patched:
- log.warn('%s already patched.', pkg_info)
- return False
- # now let's move the files out of the way
- for element in ('setuptools', 'pkg_resources.py', 'site.py'):
- element = os.path.join(placeholder, element)
- if os.path.exists(element):
- _rename_path(element)
- else:
- log.warn('Could not find the %s element of the '
- 'Setuptools distribution', element)
- return True
-
-_remove_flat_installation = _no_sandbox(_remove_flat_installation)
-
-def _after_install(dist):
- log.warn('After install bootstrap.')
- placeholder = dist.get_command_obj('install').install_purelib
- _create_fake_setuptools_pkg_info(placeholder)
-
-def _create_fake_setuptools_pkg_info(placeholder):
- if not placeholder or not os.path.exists(placeholder):
- log.warn('Could not find the install location')
- return
- pyver = '%s.%s' % (sys.version_info[0], sys.version_info[1])
- setuptools_file = 'setuptools-%s-py%s.egg-info' % \
- (SETUPTOOLS_FAKED_VERSION, pyver)
- pkg_info = os.path.join(placeholder, setuptools_file)
- if os.path.exists(pkg_info):
- log.warn('%s already exists', pkg_info)
- return
-
- log.warn('Creating %s', pkg_info)
- f = open(pkg_info, 'w')
- try:
- f.write(SETUPTOOLS_PKG_INFO)
- finally:
- f.close()
-
- pth_file = os.path.join(placeholder, 'setuptools.pth')
- log.warn('Creating %s', pth_file)
- f = open(pth_file, 'w')
- try:
- f.write(os.path.join(os.curdir, setuptools_file))
- finally:
- f.close()
-
-_create_fake_setuptools_pkg_info = _no_sandbox(_create_fake_setuptools_pkg_info)
-
-def _patch_egg_dir(path):
- # let's check if it's already patched
- pkg_info = os.path.join(path, 'EGG-INFO', 'PKG-INFO')
- if os.path.exists(pkg_info):
- if _same_content(pkg_info, SETUPTOOLS_PKG_INFO):
- log.warn('%s already patched.', pkg_info)
- return False
- _rename_path(path)
- os.mkdir(path)
- os.mkdir(os.path.join(path, 'EGG-INFO'))
- pkg_info = os.path.join(path, 'EGG-INFO', 'PKG-INFO')
- f = open(pkg_info, 'w')
- try:
- f.write(SETUPTOOLS_PKG_INFO)
- finally:
- f.close()
- return True
-
-_patch_egg_dir = _no_sandbox(_patch_egg_dir)
-
-def _before_install():
- log.warn('Before install bootstrap.')
- _fake_setuptools()
-
-
-def _under_prefix(location):
- if 'install' not in sys.argv:
- return True
- args = sys.argv[sys.argv.index('install')+1:]
- for index, arg in enumerate(args):
- for option in ('--root', '--prefix'):
- if arg.startswith('%s=' % option):
- top_dir = arg.split('root=')[-1]
- return location.startswith(top_dir)
- elif arg == option:
- if len(args) > index:
- top_dir = args[index+1]
- return location.startswith(top_dir)
- if arg == '--user' and USER_SITE is not None:
- return location.startswith(USER_SITE)
- return True
-
-
-def _fake_setuptools():
- log.warn('Scanning installed packages')
- try:
- import pkg_resources
- except ImportError:
- # we're cool
- log.warn('Setuptools or Distribute does not seem to be installed.')
- return
- ws = pkg_resources.working_set
- try:
- setuptools_dist = ws.find(pkg_resources.Requirement.parse('setuptools',
- replacement=False))
- except TypeError:
- # old distribute API
- setuptools_dist = ws.find(pkg_resources.Requirement.parse('setuptools'))
-
- if setuptools_dist is None:
- log.warn('No setuptools distribution found')
- return
- # detecting if it was already faked
- setuptools_location = setuptools_dist.location
- log.warn('Setuptools installation detected at %s', setuptools_location)
-
- # if --root or --preix was provided, and if
- # setuptools is not located in them, we don't patch it
- if not _under_prefix(setuptools_location):
- log.warn('Not patching, --root or --prefix is installing Distribute'
- ' in another location')
- return
-
- # let's see if its an egg
- if not setuptools_location.endswith('.egg'):
- log.warn('Non-egg installation')
- res = _remove_flat_installation(setuptools_location)
- if not res:
- return
- else:
- log.warn('Egg installation')
- pkg_info = os.path.join(setuptools_location, 'EGG-INFO', 'PKG-INFO')
- if (os.path.exists(pkg_info) and
- _same_content(pkg_info, SETUPTOOLS_PKG_INFO)):
- log.warn('Already patched.')
- return
- log.warn('Patching...')
- # let's create a fake egg replacing setuptools one
- res = _patch_egg_dir(setuptools_location)
- if not res:
- return
- log.warn('Patched done.')
- _relaunch()
-
-
-def _relaunch():
- log.warn('Relaunching...')
- # we have to relaunch the process
- # pip marker to avoid a relaunch bug
- if sys.argv[:3] == ['-c', 'install', '--single-version-externally-managed']:
- sys.argv[0] = 'setup.py'
- args = [sys.executable] + sys.argv
- sys.exit(subprocess.call(args))
-
-
-def _extractall(self, path=".", members=None):
- """Extract all members from the archive to the current working
- directory and set owner, modification time and permissions on
- directories afterwards. `path' specifies a different directory
- to extract to. `members' is optional and must be a subset of the
- list returned by getmembers().
- """
- import copy
- import operator
- from tarfile import ExtractError
- directories = []
-
- if members is None:
- members = self
-
- for tarinfo in members:
- if tarinfo.isdir():
- # Extract directories with a safe mode.
- directories.append(tarinfo)
- tarinfo = copy.copy(tarinfo)
- tarinfo.mode = 448 # decimal for oct 0700
- self.extract(tarinfo, path)
-
- # Reverse sort directories.
- if sys.version_info < (2, 4):
- def sorter(dir1, dir2):
- return cmp(dir1.name, dir2.name)
- directories.sort(sorter)
- directories.reverse()
- else:
- directories.sort(key=operator.attrgetter('name'), reverse=True)
-
- # Set correct owner, mtime and filemode on directories.
- for tarinfo in directories:
- dirpath = os.path.join(path, tarinfo.name)
- try:
- self.chown(tarinfo, dirpath)
- self.utime(tarinfo, dirpath)
- self.chmod(tarinfo, dirpath)
- except ExtractError:
- e = sys.exc_info()[1]
- if self.errorlevel > 1:
- raise
- else:
- self._dbg(1, "tarfile: %s" % e)
-
-
-def main(argv, version=DEFAULT_VERSION):
- """Install or upgrade setuptools and EasyInstall"""
- tarball = download_setuptools()
- _install(tarball)
-
-
-if __name__ == '__main__':
- main(sys.argv[1:])
diff --git a/docs/Makefile b/docs/Makefile
deleted file mode 100644
index 4adf10b..0000000
--- a/docs/Makefile
+++ /dev/null
@@ -1,88 +0,0 @@
-# Makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = sphinx-build
-PAPER =
-
-# Internal variables.
-PAPEROPT_a4 = -D latex_paper_size=a4
-PAPEROPT_letter = -D latex_paper_size=letter
-ALLSPHINXOPTS = -d _build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
-
-.PHONY: help clean html dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest
-
-help:
- @echo "Please use \`make <target>' where <target> is one of"
- @echo " html to make standalone HTML files"
- @echo " dirhtml to make HTML files named index.html in directories"
- @echo " pickle to make pickle files"
- @echo " json to make JSON files"
- @echo " htmlhelp to make HTML files and a HTML help project"
- @echo " qthelp to make HTML files and a qthelp project"
- @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
- @echo " changes to make an overview of all changed/added/deprecated items"
- @echo " linkcheck to check all external links for integrity"
- @echo " doctest to run all doctests embedded in the documentation (if enabled)"
-
-clean:
- -rm -rf _build/*
-
-html:
- $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) _build/html
- @echo
- @echo "Build finished. The HTML pages are in _build/html."
-
-dirhtml:
- $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) _build/dirhtml
- @echo
- @echo "Build finished. The HTML pages are in _build/dirhtml."
-
-pickle:
- $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) _build/pickle
- @echo
- @echo "Build finished; now you can process the pickle files."
-
-json:
- $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) _build/json
- @echo
- @echo "Build finished; now you can process the JSON files."
-
-htmlhelp:
- $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) _build/htmlhelp
- @echo
- @echo "Build finished; now you can run HTML Help Workshop with the" \
- ".hhp project file in _build/htmlhelp."
-
-qthelp:
- $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) _build/qthelp
- @echo
- @echo "Build finished; now you can run "qcollectiongenerator" with the" \
- ".qhcp project file in _build/qthelp, like this:"
- @echo "# qcollectiongenerator _build/qthelp/TotalOpenStation.qhcp"
- @echo "To view the help file:"
- @echo "# assistant -collectionFile _build/qthelp/TotalOpenStation.qhc"
-
-latex:
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) _build/latex
- @echo
- @echo "Build finished; the LaTeX files are in _build/latex."
- @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
- "run these through (pdf)latex."
-
-changes:
- $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) _build/changes
- @echo
- @echo "The overview file is in _build/changes."
-
-linkcheck:
- $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) _build/linkcheck
- @echo
- @echo "Link check complete; look for any errors in the above output " \
- "or in _build/linkcheck/output.txt."
-
-doctest:
- $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) _build/doctest
- @echo "Testing of doctests in the sources finished, look at the " \
- "results in _build/doctest/output.txt."
diff --git a/docs/_static/sphinxdoc.css b/docs/_static/sphinxdoc.css
deleted file mode 100644
index cbda43e..0000000
--- a/docs/_static/sphinxdoc.css
+++ /dev/null
@@ -1,323 +0,0 @@
-/**
- * Sphinx stylesheet -- sphinxdoc theme
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- *
- * Originally created by Armin Ronacher for Werkzeug, adapted by Georg Brandl.
- */
-
- at import url("basic.css");
-
-/* -- page layout ----------------------------------------------------------- */
-
-body {
- font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva',
- 'Verdana', sans-serif;
- font-size: 14px;
- letter-spacing: -0.01em;
- line-height: 150%;
- text-align: center;
- background-color: #fcaf3e;
- color: black;
- padding: 0;
- border: 1px solid #aaa;
-
- margin: 0px 80px 0px 80px;
- min-width: 740px;
-}
-
-div.document {
- background-color: white;
- text-align: left;
- background-image: url(contents.png);
- background-repeat: repeat-x;
-}
-
-div.bodywrapper {
- margin: 0 240px 0 0;
- border-right: 1px solid #ccc;
-}
-
-div.body {
- margin: 0;
- padding: 0.5em 20px 20px 20px;
-}
-
-div.related {
- font-size: 1em;
-}
-
-div.related ul {
- background-image: url(navigation.png);
- height: 2em;
- border-top: 1px solid #ddd;
- border-bottom: 1px solid #ddd;
-}
-
-div.related ul li {
- margin: 0;
- padding: 0;
- height: 2em;
- float: left;
-}
-
-div.related ul li.right {
- float: right;
- margin-right: 5px;
-}
-
-div.related ul li a {
- margin: 0;
- padding: 0 5px 0 5px;
- line-height: 1.75em;
- color: #EE9816;
-}
-
-div.related ul li a:hover {
- color: #3CA8E7;
-}
-
-div.sphinxsidebarwrapper {
- padding: 0;
-}
-
-div.sphinxsidebar {
- margin: 0;
- padding: 0.5em 15px 15px 0;
- width: 210px;
- float: right;
- font-size: 1em;
- text-align: left;
-}
-
-div.sphinxsidebar h3, div.sphinxsidebar h4 {
- margin: 1em 0 0.5em 0;
- font-size: 1em;
- padding: 0.1em 0 0.1em 0.5em;
- color: white;
- border: 1px solid #fcaf3e;
- background-color: #f57900;
-}
-
-div.sphinxsidebar h3 a {
- color: white;
-}
-
-div.sphinxsidebar ul {
- padding-left: 1.5em;
- margin-top: 7px;
- padding: 0;
- line-height: 130%;
-}
-
-div.sphinxsidebar ul ul {
- margin-left: 20px;
-}
-
-div.footer {
- background-color: #FFFFFF;
- color: #86989B;
- padding: 3px 8px 3px 0;
- clear: both;
- font-size: 0.8em;
- text-align: right;
-}
-
-div.footer a {
- color: #86989B;
- text-decoration: underline;
-}
-
-/* -- body styles ----------------------------------------------------------- */
-
-p {
- margin: 0.8em 0 0.5em 0;
-}
-
-a {
- color: #CA7900;
- text-decoration: none;
-}
-
-a:hover {
- color: #2491CF;
-}
-
-div.body a {
- text-decoration: underline;
-}
-
-h1 {
- margin: 0;
- padding: 0.7em 0 0.3em 0;
- font-size: 1.5em;
- color: #11557C;
-}
-
-h2 {
- margin: 1.3em 0 0.2em 0;
- font-size: 1.35em;
- padding: 0;
-}
-
-h3 {
- margin: 1em 0 -0.3em 0;
- font-size: 1.2em;
-}
-
-div.body h1 a, div.body h2 a, div.body h3 a, div.body h4 a, div.body h5 a, div.body h6 a {
- color: black!important;
-}
-
-h1 a.anchor, h2 a.anchor, h3 a.anchor, h4 a.anchor, h5 a.anchor, h6 a.anchor {
- display: none;
- margin: 0 0 0 0.3em;
- padding: 0 0.2em 0 0.2em;
- color: #aaa!important;
-}
-
-h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor,
-h5:hover a.anchor, h6:hover a.anchor {
- display: inline;
-}
-
-h1 a.anchor:hover, h2 a.anchor:hover, h3 a.anchor:hover, h4 a.anchor:hover,
-h5 a.anchor:hover, h6 a.anchor:hover {
- color: #777;
- background-color: #eee;
-}
-
-a.headerlink {
- color: #c60f0f!important;
- font-size: 1em;
- margin-left: 6px;
- padding: 0 4px 0 4px;
- text-decoration: none!important;
-}
-
-a.headerlink:hover {
- background-color: #ccc;
- color: white!important;
-}
-
-cite, code, tt {
- font-family: 'Consolas', 'Deja Vu Sans Mono',
- 'Bitstream Vera Sans Mono', monospace;
- font-size: 0.95em;
- letter-spacing: 0.01em;
-}
-
-tt {
- background-color: #f2f2f2;
- border-bottom: 1px solid #ddd;
- color: #333;
-}
-
-tt.descname, tt.descclassname, tt.xref {
- border: 0;
-}
-
-hr {
- border: 1px solid #abc;
- margin: 2em;
-}
-
-a tt {
- border: 0;
- color: #CA7900;
-}
-
-a tt:hover {
- color: #2491CF;
-}
-
-pre {
- font-family: 'Consolas', 'Deja Vu Sans Mono',
- 'Bitstream Vera Sans Mono', monospace;
- font-size: 0.95em;
- letter-spacing: 0.015em;
- line-height: 120%;
- padding: 0.5em;
- border: 1px solid #ccc;
- background-color: #f8f8f8;
-}
-
-pre a {
- color: inherit;
- text-decoration: underline;
-}
-
-td.linenos pre {
- padding: 0.5em 0;
-}
-
-div.quotebar {
- background-color: #f8f8f8;
- max-width: 250px;
- float: right;
- padding: 2px 7px;
- border: 1px solid #ccc;
-}
-
-div.topic {
- background-color: #f8f8f8;
-}
-
-table {
- border-collapse: collapse;
- margin: 0 -0.5em 0 -0.5em;
-}
-
-table td, table th {
- padding: 0.2em 0.5em 0.2em 0.5em;
-}
-
-div.admonition, div.warning {
- font-size: 0.9em;
- margin: 1em 0 1em 0;
- border: 1px solid #86989B;
- background-color: #f7f7f7;
- padding: 0;
-}
-
-div.admonition p, div.warning p {
- margin: 0.5em 1em 0.5em 1em;
- padding: 0;
-}
-
-div.admonition pre, div.warning pre {
- margin: 0.4em 1em 0.4em 1em;
-}
-
-div.admonition p.admonition-title,
-div.warning p.admonition-title {
- margin: 0;
- padding: 0.1em 0 0.1em 0.5em;
- color: white;
- border-bottom: 1px solid #86989B;
- font-weight: bold;
- background-color: #AFC1C4;
-}
-
-div.warning {
- border: 1px solid #940000;
-}
-
-div.warning p.admonition-title {
- background-color: #CF0000;
- border-bottom-color: #940000;
-}
-
-div.admonition ul, div.admonition ol,
-div.warning ul, div.warning ol {
- margin: 0.1em 0.5em 0.5em 3em;
- padding: 0;
-}
-
-div.versioninfo {
- margin: 1em 0 0 0;
- border: 1px solid #ccc;
- background-color: #DDEAF0;
- padding: 8px;
- line-height: 1.3em;
- font-size: 0.9em;
-}
diff --git a/docs/_static/tops.ico b/docs/_static/tops.ico
deleted file mode 100644
index 0ff93cd..0000000
Binary files a/docs/_static/tops.ico and /dev/null differ
diff --git a/docs/_static/total-station-weblogo.png b/docs/_static/total-station-weblogo.png
deleted file mode 100644
index 0f7d6a4..0000000
Binary files a/docs/_static/total-station-weblogo.png and /dev/null differ
diff --git a/docs/_templates/layout.html b/docs/_templates/layout.html
deleted file mode 100644
index 3dcca3f..0000000
--- a/docs/_templates/layout.html
+++ /dev/null
@@ -1,21 +0,0 @@
-{% extends "!layout.html" %}
-
-
-{% block rootrellink %}
- <li><a href="{{ pathto('index') }}">Total Open Station home</a>| </li>
- <li><a href="{{ pathto('contents') }}">Documentation </a> »</li>
-{% endblock %}
-
-
-{% block relbar1 %}
-
-<div style="background-color: white; text-align: left; padding: 10px 10px 15px 15px">
-<a href="{{ pathto('index') }}"><img src="{{
-pathto("_static/total-station-weblogo.png", 1) }}" border="0" alt="sampledoc"/></a>
-</div>
-{{ super() }}
-{% endblock %}
-
-{# put the sidebar before the body #}
-{% block sidebar1 %}{{ sidebar() }}{% endblock %}
-{% block sidebar2 %}{% endblock %}
diff --git a/docs/conf.py b/docs/conf.py
deleted file mode 100644
index 70adb17..0000000
--- a/docs/conf.py
+++ /dev/null
@@ -1,195 +0,0 @@
-
-# -*- coding: utf-8 -*-
-#
-# Total Open Station documentation build configuration file, created by
-# sphinx-quickstart on Tue Sep 1 21:33:14 2009.
-#
-# This file is execfile()d with the current directory set to its containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-import sys, os
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#sys.path.append(os.path.abspath('.'))
-
-# -- General configuration -----------------------------------------------------
-
-# Add any Sphinx extension module names here, as strings. They can be extensions
-# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['sphinx.ext.autodoc', 'sphinx.ext.todo', 'sphinx.ext.pngmath']
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix of source filenames.
-source_suffix = '.txt'
-
-# The encoding of source files.
-#source_encoding = 'utf-8'
-
-# The master toctree document.
-master_doc = 'contents'
-
-# General information about the project.
-project = u'Total Open Station'
-copyright = u'2008-2011, Stefano Costa, Luca Bianconi'
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = '0.3'
-# The full version, including alpha/beta/rc tags.
-release = '0.3.0'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#language = None
-
-# There are two options for replacing |today|: either, you set today to some
-# non-false value, then it is used:
-#today = ''
-# Else, today_fmt is used as the format for a strftime call.
-#today_fmt = '%B %d, %Y'
-
-# List of documents that shouldn't be included in the build.
-#unused_docs = []
-
-# List of directories, relative to source directory, that shouldn't be searched
-# for source files.
-exclude_trees = ['_build']
-
-# The reST default role (used for this markup: `text`) to use for all documents.
-#default_role = None
-
-# If true, '()' will be appended to :func: etc. cross-reference text.
-#add_function_parentheses = True
-
-# If true, the current module name will be prepended to all description
-# unit titles (such as .. function::).
-#add_module_names = True
-
-# If true, sectionauthor and moduleauthor directives will be shown in the
-# output. They are ignored by default.
-#show_authors = False
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# A list of ignored prefixes for module index sorting.
-#modindex_common_prefix = []
-
-
-# -- Options for HTML output ---------------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. Major themes that come with
-# Sphinx are currently 'default' and 'sphinxdoc'.
-html_theme = 'sphinxdoc'
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#html_theme_options = {}
-
-# Add any paths that contain custom themes here, relative to this directory.
-#html_theme_path = []
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# "<project> v<release> documentation".
-#html_title = None
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = None
-
-# The name of an image file (relative to this directory) to place at the top
-# of the sidebar.
-#html_logo = None
-
-# The name of an image file (within the static path) to use as favicon of the
-# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
-# pixels large.
-html_favicon = "tops.ico"
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
-# using the given strftime format.
-#html_last_updated_fmt = '%b %d, %Y'
-
-# If true, SmartyPants will be used to convert quotes and dashes to
-# typographically correct entities.
-html_use_smartypants = True
-
-# Custom sidebar templates, maps document names to template names.
-#html_sidebars = {}
-
-# Additional templates that should be rendered to pages, maps page names to
-# template names.
-#html_additional_pages = {}
-
-# If false, no module index is generated.
-#html_use_modindex = True
-
-# If false, no index is generated.
-#html_use_index = True
-
-# If true, the index is split into individual pages for each letter.
-#html_split_index = False
-
-# If true, links to the reST sources are added to the pages.
-#html_show_sourcelink = True
-
-# If true, an OpenSearch description file will be output, and all pages will
-# contain a <link> tag referring to it. The value of this option must be the
-# base URL from which the finished HTML is served.
-#html_use_opensearch = ''
-
-# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
-#html_file_suffix = ''
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'TotalOpenStationdoc'
-
-
-# -- Options for LaTeX output --------------------------------------------------
-
-# The paper size ('letter' or 'a4').
-#latex_paper_size = 'letter'
-
-# The font size ('10pt', '11pt' or '12pt').
-#latex_font_size = '10pt'
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title, author, documentclass [howto/manual]).
-latex_documents = [
- ('index', 'TotalOpenStation.tex', u'Total Open Station Documentation',
- u'Stefano Costa, Luca Bianconi', 'manual'),
-]
-
-# The name of an image file (relative to this directory) to place at the top of
-# the title page.
-#latex_logo = None
-
-# For "manual" documents, if this is true, then toplevel headings are parts,
-# not chapters.
-#latex_use_parts = False
-
-# Additional stuff for the LaTeX preamble.
-#latex_preamble = ''
-
-# Documents to append as an appendix to all manuals.
-#latex_appendices = []
-
-# If false, no module index is generated.
-#latex_use_modindex = True
diff --git a/docs/contents.txt b/docs/contents.txt
deleted file mode 100644
index be4b137..0000000
--- a/docs/contents.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-.. _contents:
-
-===============
- Documentation
-===============
-
-
-For users
-=========
-
-.. toctree::
- :maxdepth: 1
- :glob:
-
- requirements
- installing
- getting_sample_data
- glossary
- users
-
-For developers
-==============
-
-.. toctree::
- :maxdepth: 1
- :glob:
-
- models
- formats
- contributing
- roadmap
-
-Indices and tables
-==================
-
-* :ref:`genindex`
-* :ref:`modindex`
-* :ref:`search`
-
diff --git a/docs/contributing.rst b/docs/contributing.rst
new file mode 100644
index 0000000..5f147ae
--- /dev/null
+++ b/docs/contributing.rst
@@ -0,0 +1,34 @@
+.. _contributing:
+
+==============
+ Contributing
+==============
+
+Total Open Station is free software, released under the GNU `General
+Public License v3`_ or (at your option) any later version.
+
+.. _`General Public License v3`: http://www.gnu.org/licenses/gpl-3.0.html
+
+Development is tracked with git. The main development repository is at
+GitHub where it's easy to fork the source code for your own experiments.
+
+.. GitHub: https://github.com/steko/totalopenstation
+
+Coding standards
+================
+
+We try to follow as much as possible PEP-8_,
+
+.. _PEP-8: http://www.python.org/dev/peps/pep-0008/
+
+Translations
+============
+
+We are happy to accept translations for Total Open
+Station. Translations can be easily submitted and reviewed at our
+Transifex_ page. Translators get recognition for their valuable work.
+
+If your native language is missing, why don't you start translating
+Total Open Station right now?
+
+.. _Transifex: https://www.transifex.com/projects/p/totalopenstation/resource/totalopenstation-app/
diff --git a/docs/contributing.txt b/docs/contributing.txt
deleted file mode 100644
index 727bac7..0000000
--- a/docs/contributing.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-.. _contributing:
-
-==============
- Contributing
-==============
-
-Total Open Station is free software, released under the GNU `General
-Public License v3`_ or (at your option) any later version.
-
-.. _`General Public License v3`: http://www.gnu.org/licenses/gpl-3.0.html
-
-Development is tracked with Mercurial_, a fast decentralized version
-control system. Installing *Mercurial* is not needed unless you want
-to participate in TOPS development, but please **do it**. The main
-development repository is on bitbucket_ where it's easy to fork the
-source code for your own experiments.
-
-.. _Mercurial: http://mercurial.selenic.com/
-.. _bitbucket: http://bitbucket.org/steko/totalopenstation
-
-The suggested way of contributing is by sending patches using the
-Mercurial *patchbomb* extension to the `development mailing list`_.
-
-.. _`development mailing list`: https://lists.berlios.de/mailman/listinfo/tops-dev
-
-Coding standards
-================
-
-We try to follow as much as possible PEP-8_,
-
-.. _PEP-8: http://www.python.org/dev/peps/pep-0008/
diff --git a/docs/data.txt b/docs/data.txt
deleted file mode 100644
index d0d5101..0000000
--- a/docs/data.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-Data
-====
-
-For each device, there are 2 kind of information needed:
-
-* connection parameters for downloading correctly data from the serial port
-* data model for parsing of the downloaded data
-
-Connection parameters
----------------------
-
-I decided to use the **pySerial** library, that works well and has a
-cross-platform interface. Connection parameters are expressed as arguments
-of the ``Serial`` class:
-
->>> zeiss = serial.Serial('/dev/ttyUSB0', baudrate=9600,
- bytesize=serial.SEVENBITS, timeout=0, parity=serial.PARITY_NONE, rtscts=1)
-
-Things to note:
-
-* the connection port can also be indicated with a number, that is platform
- indipendent, but I don't know if this means that the user has to enter the
- port manually
-* the standard ``baudrate`` is 9600
-* setting ``timeout`` = 0 makes the device not emit errors nor strange beeps
-* the other options work, but I cannot explain them
-
-Data model
-----------
-
-The main information that we should get is made by the XYZ coordinates of each
-recorded point. This kind of information can probably be stored safely using
-a PythonGeoInterface_ or something similar.
-
-.. _PythonGeoInterface: http://trac.gispython.org/projects/PCL/wiki/PythonGeoInterface
-
-Each point must also be assigned its ID, that is the same recorded on the
-device.
-
-Each session has an arbitrary origin point, that each point must reference
-as an attribute to be able to patch different sessions together.
-
-It should be noted that these coordinates do not express any geographic nor
-cartographic position, and using GIS tools it's always difficult to avoid
-definining a Coordinate Reference System for your data. Often WGS84 is
-implicit if you don't specify one.
-
diff --git a/docs/faq.txt b/docs/faq.rst
similarity index 100%
rename from docs/faq.txt
rename to docs/faq.rst
diff --git a/docs/formats.txt b/docs/formats.rst
similarity index 100%
rename from docs/formats.txt
rename to docs/formats.rst
diff --git a/docs/getting_sample_data.txt b/docs/getting_sample_data.rst
similarity index 100%
rename from docs/getting_sample_data.txt
rename to docs/getting_sample_data.rst
diff --git a/docs/glossary.rst b/docs/glossary.rst
new file mode 100644
index 0000000..b913345
--- /dev/null
+++ b/docs/glossary.rst
@@ -0,0 +1,32 @@
+.. _glossary:
+
+Glossary
+========
+
+.. glossary::
+
+ input format
+ An input format is the way data downloaded from the total station
+ are encoded. This might include a default order for X, Y and Z
+ coordinates, particular ways of prefixing each point with some
+ distinctive text string and other features. Each input format is
+ unique, and it requires a dedicated module. Input formats are not
+ readable by common CAD or GIS software packages, and it is TOPS's work
+ to export them. These formats have a standard name, either given by the
+ manufacturer or by the TOPS development team.
+
+ model
+ When we refer to a *model* we mean all total stations that
+ have the same brand name and manufacturer (e.g. all those
+ labeled “Trimble Geodimeter 600”).
+
+ output format
+ A format readable by GIS, CAD or any sort of common software,
+ like CSV or DXF.
+
+ serial-USB adapter
+ While most total stations have a serial interface (port and cable),
+ modern PCs and laptops tend to have just USB ports. In such cases, it
+ is possible to use a serial-USB adapter cable, that enables you to
+ connect the total station to one of your USB ports. Depending on your
+ platform, the device might be identified as ``/dev/ttyUSB0`` or ``COM5``.
diff --git a/docs/glossary.txt b/docs/glossary.txt
deleted file mode 100644
index 71453ec..0000000
--- a/docs/glossary.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-Glossary
-========
-
-.. glossary::
-
- input format
- An input format is the way data downloaded from the total
- station are encoded. This might include a default order for X,
- Y and Z coordinates, particular ways of prefixing each point
- with some distinctive text string and other features. Each
- input format is unique, and it requires a dedicated
- module. Input formats are not readable by common CAD or GIS
- software packages, and it is TOPS's work to export them. These
- formats have a standard name, either given by the manufacturer
- or by the TOPS development team.
-
- model
- When we refer to a *model* we mean all total stations that
- have the same brand name and manufacturer (e.g. all those
- labeled “Trimble Geodimeter 600”).
-
- output format
- A format readable by GIS, CAD or any sort of common software,
- like CSV or DXF.
-
- serial-USB adapter
- While most total stations have a serial interface (port and cable),
- modern PCs and laptops tend to have just USB ports. In such cases, it
- is possible to use a serial-USB adapter cable, that enables you to
- connect the total station to one of your USB ports. Depending on your
- platform, the device might be identified as ``/dev/ttyUSB0`` or
- ``COM5``.
diff --git a/docs/index.rst b/docs/index.rst
new file mode 100644
index 0000000..12bdd92
--- /dev/null
+++ b/docs/index.rst
@@ -0,0 +1,96 @@
+.. TotalOpenStation documentation master file, created by
+ sphinx-quickstart on Sat May 24 15:43:10 2008. You can adapt this
+ file completely to your liking, but it should at least contain the
+ root `toctree` directive.
+
+====================
+ Total Open Station
+====================
+
+Total Open Station (TOPS for friends) is a free software program for
+downloading and processing data from total station devices.
+
+This is a task which is usually done by proprietary, dedicated and
+Windows™-only software, but TOPS is different by nature, because:
+
+- it is **free software** released under the GNU GPLv3 license;
+- it works on *any* operating system, including mobile platforms like
+ OpenMoko;
+- it is designed to support as many devices and formats as possible, all
+ within the same program, opposed to having one program per device.
+
+Every model has its own quirks, but TOPS uses a modular structure and
+keeps the downloading of data logically separated from its processing,
+thus enabling exporting data to a variety of output formats, even at a
+later moment. Archiving of raw data is made easy by using plain text
+files.
+
+:ref:`users` are a growing number, you can be the next. See which
+:ref:`models` are already supported.
+
+Getting started with Total Open Station
+=======================================
+
+Total Open Station 0.3 is in now available as a development preview and
+can be installed on all major operating systems.
+
+Detailed instructions are available at the :ref:`installing` page.
+
+If you are having problems with getting started, try first our
+:ref:`faq`. If that doesn't help, get in touch with the development
+team through our dedicated support channel and `mailing list`_.
+
+.. _`mailing list`: https://lists.berlios.de/mailman/listinfo/tops-dev
+
+Documentation
+===============
+
+
+User manual
+-----------
+
+.. toctree::
+ :maxdepth: 1
+ :glob:
+
+ installing
+ running
+ getting_sample_data
+ models
+ formats
+ glossary
+ library
+ faq
+
+Total Open Station development
+------------------------------
+
+.. toctree::
+ :maxdepth: 1
+ :glob:
+
+ contributing
+ users
+ release
+ roadmap
+
+Indices and tables
+------------------
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
+
+
+Who is doing this?
+==================
+
+Total Open Station is mainly developed as part of the IOSA_ project by
+Stefano Costa and Luca Bianconi, archaeologists.
+
+.. _IOSA: http://www.iosa.it/
+
+Total Open Station is licensed under the GNU General Public License
+version 3 or, at your option, any later version.
+
+The application icons are copyright by Lapo Calamandrei 2008.
diff --git a/docs/index.txt b/docs/index.txt
deleted file mode 100644
index c86c2aa..0000000
--- a/docs/index.txt
+++ /dev/null
@@ -1,86 +0,0 @@
-.. TotalOpenStation documentation master file, created by sphinx-quickstart on Sat May 24 15:43:10 2008.
- You can adapt this file completely to your liking, but it should at least
- contain the root `toctree` directive.
-
-====================
- Total Open Station
-====================
-
-Total Open Station (TOPS for friends) is a free software program for
-downloading and processing data from total station devices.
-
-This is a task which is usually done by proprietary, dedicated and
-Windows™-only software, but TOPS is different by nature, because:
-
-- it is *free software* released under the GNU GPLv3 license;
-- it works on *any* operating system, including mobile platforms like
- OpenMoko;
-- it is designed to support as many devices and formats as possible, all
- within the same program, opposed to having one program per device.
-
-Every model has its own quirks, but TOPS uses a modular structure and
-keeps the downloading of data logically separated from its processing,
-thus enabling exporting data to a variety of output formats, even at a
-later moment. Archiving of raw data is made easy by using plain text
-files.
-
-:ref:`users` are a growing number, you can be the next. See which
-:ref:`models` are already supported.
-
-Getting Total Open Station
-==========================
-
-Total Open Station is in a early phase of development and there isn't
-a stable release available yet.
-
-You can download the latest development “tip” either as a `compressed
-source archive`_ or directly with Mercurial::
-
- hg clone https://bitbucket.org/steko/totalopenstation
-
-.. _`compressed source archive`: https://bitbucket.org/steko/totalopenstation/get/tip.zip
-
-If you are on Windows, the recommended way to install is using the
-binary installer available at PyPI_. Detailed instructions are
-available at the page about :ref:`installing`.
-
-.. _PyPI: http://pypi.python.org/pypi/totalopenstation#downloads
-
-.. warning::
-
- This is alpha quality code, it might behave in unexpected ways,
- crash your system or just don't work at all.
-
-Binary installable packages are planned. requires
-using the command-line, but it is definitely easy.
-
-Documentation
-=============
-
-The :ref:`contents` includes both the user's manual and the
-developer's manual, and it is made with Sphinx_, as the whole website.
-
-.. _Sphinx: http://sphinx.pocoo.org/
-
-Help and support
-================
-
-If you're experiencing problems with TOPS, try first our :ref:`faq`.
-
-Community support is available through the `mailing list`_. Subscribe
-to request support for new models or submit bugs.
-
-.. _`mailing list`: https://lists.berlios.de/mailman/listinfo/tops-dev
-
-Who is doing this?
-==================
-
-Total Open Station is mainly developed as part of the IOSA_ project by
-Stefano Costa and Luca Bianconi, archaeologists.
-
-.. _IOSA: http://www.iosa.it/
-
-Total Open Station is licensed under the GNU General Public License
-version 3.
-
-The application icons are copyright by Lapo Calamandrei 2008.
diff --git a/docs/input_formats/general.txt b/docs/input_formats/general.rst
similarity index 100%
rename from docs/input_formats/general.txt
rename to docs/input_formats/general.rst
diff --git a/docs/input_formats/if_carlson_rw5.rst b/docs/input_formats/if_carlson_rw5.rst
new file mode 100644
index 0000000..a7fadb1
--- /dev/null
+++ b/docs/input_formats/if_carlson_rw5.rst
@@ -0,0 +1,42 @@
+=================================================================
+ :mod:`carlson_rw5` -- Carlson SurvCE Raw Data File Format (RW5)
+=================================================================
+
+.. module:: carlson_rw5
+ :platform: any
+ :synopsis: Read data in the Carlson RW5 data format
+.. moduleauthor:: Stefano Costa, Filip Kłosowski
+.. versionadded:: 0.4
+
+Carlson RW5 is an exchange format used by the Carlson SurvCE software.
+
+The official documentation about the format is provided on the
+`Carlson website`_.
+
+.. _Carlson website: http://update.carlsonsw.com/kbase_attach/372/
+
+RW5 is a rich format for raw data about the entire field operation of
+total stations and even GPS. At the moment, a minimal subset of the
+specification is supported, consisting of the ``OC``, ``BP``, ``LS``
+and ``SS`` record types.
+
+Each record is made of one line of text, with comma-separated fields::
+
+ OC,OP111,N 16556174.237,E 942130.662,EL 16.404
+ BK,OP111,BP108,BS0.00000,BC0.00000
+ LS,HI5.684,HR5.500
+ SS,OP111,FP108,AR0.00000,ZE0.00017,SD3.3566,--FENCE1
+
+The first field is a two-letter code of the type of record. All the
+following fields are composed with 1- or 2- letter field codes (such
+as ``OP``, ``N `` or ``FP``) and numeric values. The “Notes” field is
+introduced by the ``--`` code and contains a description of the
+record.
+
+*Sideshot* records (``SS``) reference the *Occupy point* record in the
+``OP`` field. In practice, each point has a unique number and can be
+referenced for various purposes from other records.
+
+TOPS is capable of converting raw measurement data into local
+coordinates, by performing a sequential processing of all records in
+their order.
diff --git a/docs/input_formats/if_leica_gsi.rst b/docs/input_formats/if_leica_gsi.rst
new file mode 100644
index 0000000..098b2ac
--- /dev/null
+++ b/docs/input_formats/if_leica_gsi.rst
@@ -0,0 +1,45 @@
+=========================
+ :mod:`leica_gsi` -- GSI
+=========================
+
+.. module:: leica_gsi
+ :platform: any
+ :synopsis: Read data in the GSI8 and GSI16 formats
+.. moduleauthor:: Stefano Costa
+.. versionadded:: 0.4
+
+GSI is a very popular data format, used by many Leica total stations. It is
+stored as ASCII text, with one line per measurement. In each line, there can
+be several *blocks* of data, with a blank space as a separation.
+
+There are two variants of GSI:
+
+- GSI8
+- GSI16
+
+but they only differ in the size of a single *block*.
+
+GSI is a very rich format, and it can hold both cartesian and polar coordinates
+with a detailed recording of all commands executed by the device and with
+explicit indication of the measurement units.
+
+Known limitations
+=================
+
+Support for raw measurements is still incomplete, namely it lacks support for
+base station points, except in some specific cases when the base point
+coordinates are directly associated with each measurement.
+
+Measurement units (both for distances and angles) are not supported yet.
+
+Acknowledgements
+================
+
+Support for this format was added thanks to Anna Hodgkinson and Hannah Petten
+at the University of Liverpool. Some details of the implementation are based
+on the SurveyTools QGIS plugin developed by Stefan Ziegler.
+
+.. seealso::
+
+ `GSI Online for Leica TPS <http://www.leica-geosystems.com/media/new/product_solution/gsi_manual.pdf>`_
+ Documentation for GSI from Leica.
diff --git a/docs/input_formats/if_leica_tcr_1205.txt b/docs/input_formats/if_leica_tcr_1205.rst
similarity index 100%
rename from docs/input_formats/if_leica_tcr_1205.txt
rename to docs/input_formats/if_leica_tcr_1205.rst
diff --git a/docs/input_formats/if_nikon_raw_v200.txt b/docs/input_formats/if_nikon_raw_v200.rst
similarity index 100%
rename from docs/input_formats/if_nikon_raw_v200.txt
rename to docs/input_formats/if_nikon_raw_v200.rst
diff --git a/docs/input_formats/if_sokkia_sdr33.rst b/docs/input_formats/if_sokkia_sdr33.rst
new file mode 100644
index 0000000..eee1924
--- /dev/null
+++ b/docs/input_formats/if_sokkia_sdr33.rst
@@ -0,0 +1,27 @@
+======================================
+ :mod:`sokkia_sdr33` -- Sokkia SDR 33
+======================================
+
+.. module:: sokkia_sdr33
+ :platform: any
+ :synopsis: Read data in the Sokkia SDR33 format
+.. moduleauthor:: Stefano Costa
+.. versionadded:: 0.4
+
+Sokkia SDR33 is a format used by older models such as Sokkia SET 5F.
+
+The format supports is based on fixed-position fields, with one record per
+line. SDR33 supports both polar (“raw”) measurements and cartesian
+coordinates (Northing, Easting, Elevation).
+
+The first four characters of a line are useful to separate the various
+type of measurements:
+
+- prism height is marked by code ``03NM``
+- polar measurements are marked by the ``09F1`` code
+- cartesian measurements are marked by ``08TP``
+- base stations are marked by ``02TP``, because their coordinates are
+ entered by hand as cartesian coordinates
+
+It is uncommon for polar and cartesian measurements to be found in the
+same dataset.
diff --git a/docs/input_formats/if_trimble_are.txt b/docs/input_formats/if_trimble_are.rst
similarity index 100%
rename from docs/input_formats/if_trimble_are.txt
rename to docs/input_formats/if_trimble_are.rst
diff --git a/docs/input_formats/if_zeiss_rec_500.txt b/docs/input_formats/if_zeiss_rec_500.rst
similarity index 100%
rename from docs/input_formats/if_zeiss_rec_500.txt
rename to docs/input_formats/if_zeiss_rec_500.rst
diff --git a/docs/input_formats/new.txt b/docs/input_formats/new.rst
similarity index 100%
rename from docs/input_formats/new.txt
rename to docs/input_formats/new.rst
diff --git a/docs/input_formats/other.txt b/docs/input_formats/other.rst
similarity index 100%
rename from docs/input_formats/other.txt
rename to docs/input_formats/other.rst
diff --git a/docs/installing.rst b/docs/installing.rst
new file mode 100644
index 0000000..cfece28
--- /dev/null
+++ b/docs/installing.rst
@@ -0,0 +1,209 @@
+.. _installing:
+
+===============================
+ Installing Total Open Station
+===============================
+
+There are a few different ways to install Total Open Station,
+depending on your operating system.
+
+GNU/Linux distributions
+=======================
+
+OpenSUSE
+--------
+
+Total Open Station is packaged for OpenSUSE. Installing is as easy as::
+
+ $ sudo zypper ar http://download.opensuse.org/repositories/Application:/Geo/openSUSE_12.1/ GEO
+ $ sudo zypper refresh
+ $ sudo zypper install TotalOpenStation
+
+Debian and Ubuntu
+-----------------
+
+Total Open Station is included in Debian and Ubuntu, just::
+
+ sudo apt-get install totalopenstation
+
+as usual. Please note that the version provided by your distribution may not
+be the latest release.
+
+Mac OSX
+=======
+
+Download Python 2 from the official website, and follow `this document on the
+Python.org website <https://www.python.org/download/mac/tcltk/>`_, that will
+help you choosing the correct version of Python to use.
+
+.. warning::
+
+ Do not use the pre-installed Python that comes with the OSX operating system.
+
+Microsoft Windows
+=================
+
+Two packages need to be installed before the actual installation of
+Total Open Station, because the program is written in the Python
+programming language which is not installed by default on Windows.
+
+.. warning::
+
+ You might need administrator privileges to be able to install all
+ the programs.
+
+Install Python
+--------------
+
+Check whether your Windows is 32 bit (``x86``, common for older versions like
+Windows XP) or 64 bit (``x86-64``). Then download the latest Python installer
+for **Python 2** (not Python 3):
+
+- `Python Releases for Windows`_
+
+When you've got the installer donwloaded on your computer, install
+it. You don’t need to use Python directly, but it is needed for the
+program to work.
+
+.. _Python Releases for Windows: https://www.python.org/downloads/windows/
+
+Install pySerial
+----------------
+
+Download pySerial_ and install it. As with Python, you don’t need
+to use it directly, but it is needed for the program to work. Please make
+sure you are installing pySerial version 2.7 or a later version.
+
+.. _pySerial: http://pyserial.sourceforge.net/
+
+
+Install Total Open Station
+--------------------------
+
+Download the most recent version of Total Open Station from `PyPI`_ and install it.
+You will find the totalopenstation-gui script in :file:`C:/Python27/Scripts/`
+unless you have changed the standard installation options (not
+recommended). You can create a shortcut to the program on your desktop
+if you like.
+
+To upgrade to a newer version, just go to `PyPI`_ again, download the latest
+version and install it as with the first one. The old version will get
+overwritten. No data will be lost!
+
+.. _`PyPI`: https://pypi.python.org/pypi/totalopenstation/
+
+Install the Prolific PL2032 drivers
+-----------------------------------
+
+(optional, but recommended).
+
+Most USB-serial adapters are made with the Prolific chipset. If
+plugging the cable gives you errors about missing drivers for your
+hardware, drivers for Windows can be downloaded from the `Prolific
+website`_.
+
+.. _`Prolific website`:
+ http://www.prolific.com.tw/eng/downloads.asp?ID=31
+
+
+Using pip (for the latest version)
+==================================
+
+Until your operating system's packaging tools (e.g. apt or
+yum) allow you to install Total Open Station along with other
+programs, the recommended way to install is using pip_ (a package
+manager for Python) and virtualenv_ (which creates isolated
+software environments: basically you don't mix packages installed
+system-wise with your package manager and user-installed
+software). Here follows a detailed step-by-step guide.
+
+.. _pip: http://www.pip-installer.org/
+.. _virtualenv: http://pypi.python.org/pypi/virtualenv
+
+Install ``pip`` and ``virtualenv``
+----------------------------------
+
+First of all, make sure you have ``pip`` and ``virtualenv``
+installed. All major GNU/Linux distributions have them packaged:
+
+- Debian and derivatives (including Ubuntu): ``apt-get install
+ python-pip python-virtualenv``
+- Fedora: ``yum install python-pip python-virtualenv``
+
+Create a virtual environment
+----------------------------
+
+Creating a virtual environment is as easy as typing in a terminal::
+
+ virtualenv tops-environment
+
+A new directory named ``tops-environment`` was created. It contains a
+minimal set of files needed to manage a Python installation that is
+isolated from the one installed on your system, helping to keep things
+clean.
+
+Now activate the environment with::
+
+ source tops-environment/bin/activate
+
+From now on, all Python-related actions will be executed within the
+newly created environment, and not on the system-wide
+installation. You terminal should look a bit different when the
+virtual environment is active::
+
+ (tops-environment)steko at gibreel:$
+
+You can change directory freely, the environment will remain active.
+
+You *deactivate* the environment (that is, you exit from it), with the
+``deactivate`` command.
+
+Installing Total Open Station
+-----------------------------
+
+Once the virtual environment is *active*, you're ready to install
+Total Open Station, with::
+
+ pip install totalopenstation
+
+This will automatically download the latest released version from the
+Python Package Index (PyPI), and install all the other required Python
+packages as well.
+
+Installing development versions
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Sometimes it is useful to install development versions before they are
+released, to help with testing of new features and making sure that
+there are no new bugs.
+
+Using the procedure described above it is fairly easy to create
+another, separate environment. Once the new environment is *active*,
+the command for installing a development version is::
+
+ pip install -e git+https://github.com/steko/totalopenstation#egg=totalopenstation
+
+Developers may ask you to install from another repository, but the
+concept stays the same. This mechanism is very flexible and allows to
+install and test different versions safely.
+
+Running the program
+-------------------
+
+When the program is installed, you can use it from the command line or
+with a graphical interface (recommended for new users).
+
+From your terminal, type::
+
+ totalopenstation-gui.py
+
+and the program should start. Please report any errors to the `issue tracker`_.
+
+The next time you want to run the program, follow these steps:
+
+#. open a terminal
+#. ``cd`` to the directory where the virtual environment was created
+#. ``source tops-environment/bin/activate`` to enter the virtualenv
+#. ``totalopenstation-gui.py`` will start the program
+
+.. _issue tracker: https://github.com/steko/totalopenstation/issues
diff --git a/docs/installing.txt b/docs/installing.txt
deleted file mode 100644
index f22755c..0000000
--- a/docs/installing.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-.. _installing:
-
-============
- Installing
-============
-
-There are a few different ways to install Total Open Station,
-depending on your operating system. If you are on GNU/Linux or Mac
-OSX, you should already have Python installed on your
-system. Instructions for Microsoft Windows are below.
-
-Using ``pip``
-=============
-
-Until your operating system's packaging tools (e.g. ``apt`` or
-``yum``) allow you to install Total Open Station along with other
-programs, the recommended way to install is using ``pip``, like::
-
- pip install totalopenstation
-
-This will install all the other required Python packages as
-well. ``pip`` is complementary with virtualenv_, and it is encouraged
-that you use virtualenv to isolate your installation::
-
- pip -E tops install totalopenstation
-
-where ``-E tops`` creates a virtual environment named ``tops`` and
-installs totalopenstation into it.
-
-.. _virtualenv: http://pypi.python.org/pypi/virtualenv
-
-Read more about ``pip`` at http://pip.openplans.org/ and
-http://guide.python-distribute.org/pip.html .
-
-Manual install with ``setup.py``
-================================
-
-If you manually download the source distribution file from PyPI or
-from the mercurial repository, first make sure you have installed all
-the :ref:`required packages <requirements>`. Then, just ``cd`` into
-the uncompressed directory and::
-
- python setup.py install
-
-Again, it's strongly recommended to avoid a system-wide install. Use
-``virtualenv``.
-
-Windows
-=======
-
-There is a binary installer available at PyPI_. This requires you to
-install a Python_ distribution (latest available is 2.7.1 ‒ do not
-install Python 3 as we don't support it yet), and the pyserial_ and
-setuptools_ modules.
-
-.. _PyPI: http://pypi.python.org/pypi/totalopenstation#downloads
-.. _Python: http://www.python.org/getit/windows/
-.. _pyserial: http://pypi.python.org/pypi/pyserial#downloads
-.. _setuptools: http://pypi.python.org/pypi/setuptools#downloads
diff --git a/docs/library.txt b/docs/library.rst
similarity index 51%
rename from docs/library.txt
rename to docs/library.rst
index d63e6eb..08a7eaa 100644
--- a/docs/library.txt
+++ b/docs/library.rst
@@ -15,4 +15,12 @@ This is a feature.
Example: a web app for converting total station data
====================================================
+If you want to see how to write a web app to convert total station
+data in 50 lines of Python code, check out `TOPS in the Cloud
+<https://bitbucket.org/steko/tops-cloud/overview>`_. It is made with
+`Flask <http://flask.pocoo.org/>`_ and shows how to use Total Open
+Station as a programming library.
+We think it's important to be able to use TOPS in this way as in any
+other way (GUI, command-line), and this is one of the reasons why
+there is no stable release yet: the TOPS API is still unstable.
diff --git a/docs/models.txt b/docs/models.rst
similarity index 100%
rename from docs/models.txt
rename to docs/models.rst
diff --git a/docs/models/general.txt b/docs/models/general.rst
similarity index 100%
rename from docs/models/general.txt
rename to docs/models/general.rst
diff --git a/docs/models/model_leica_tcr_1205.txt b/docs/models/model_leica_tcr_1205.rst
similarity index 100%
rename from docs/models/model_leica_tcr_1205.txt
rename to docs/models/model_leica_tcr_1205.rst
diff --git a/docs/models/model_nikon_npl_350.txt b/docs/models/model_nikon_npl_350.rst
similarity index 100%
rename from docs/models/model_nikon_npl_350.txt
rename to docs/models/model_nikon_npl_350.rst
diff --git a/docs/models/model_zeiss_elta_r55.txt b/docs/models/model_zeiss_elta_r55.rst
similarity index 100%
rename from docs/models/model_zeiss_elta_r55.txt
rename to docs/models/model_zeiss_elta_r55.rst
diff --git a/docs/models/other.txt b/docs/models/other.rst
similarity index 100%
rename from docs/models/other.txt
rename to docs/models/other.rst
diff --git a/docs/release.rst b/docs/release.rst
new file mode 100644
index 0000000..419d68a
--- /dev/null
+++ b/docs/release.rst
@@ -0,0 +1,70 @@
+.. _release:
+
+============================================
+ Releasing a new Total Open Station version
+============================================
+
+Translations
+============
+
+The main tool we use for translating Total Open Station is `Transifex`_.
+
+When the release is approaching and the source strings are not going
+to change, declare string freeze. Source messages should be updated
+with one of ``xgettext``, ``pygettext`` or Babel_ (with the
+``extract_messages`` command), producing ``totalopenstation.pot``, e.g.::
+
+ xgettext scripts/*.py -o locale/totalopenstation.pot
+
+The resulting PO template file mut be uploaded to Transifex for translators
+to work with::
+
+ tx push -s
+
+If there is an existing translation, ``msgmerge`` or Babel
+``update_catalog`` should be used to update.
+
+Translators should be invited to submit new translations, either via
+``.po`` files or Transifex_.
+
+When the translation period is over, pull the updated ``.po`` files
+from Transifex with::
+
+ tx pull -r totalopenstation.totalopenstation-app -a
+
+and check that the files are updated. Commit new files separately from updates.
+
+.. _Babel: http://babel.edgewall.org/wiki/Documentation/0.9/setup.html
+.. _Transifex: https://www.transifex.com/projects/p/totalopenstation/resource/totalopenstation-app/
+
+If using Babel, compile the translated messages with::
+
+ python setup.py compile_catalog -d locale
+
+Documentation
+=============
+
+The documentation is included in the source tree, and is published
+online at <http://totalopenstation.readthedocs.org/>_.
+
+Manual pages for the three scripts provided with TOPS are not
+available at the moment.
+
+Release
+=======
+
+The version number is declared in ``totalopenstation/__init__.py`` and
+is propagated in other places from there, including ``setup.py`` and
+the “About” dialog.
+
+A *source distribution* is made using::
+
+ python setup.py sdist
+
+A *built distribution* is made using (e.g. for Windows installer)::
+
+ python setup.py bdist --formats wininst
+
+We are currently following the `Python Packaging User Guide
+<https://packaging.python.org/en/latest/distributing.html>`_ and
+distributing sources and *wheels*.
diff --git a/docs/requirements.txt b/docs/requirements.txt
deleted file mode 100644
index 6c3fd51..0000000
--- a/docs/requirements.txt
+++ /dev/null
@@ -1,85 +0,0 @@
-.. _requirements:
-
-==============
- Requirements
-==============
-
-TotalOpenStation is written using the Python_ language. Thus you'll need to
-have a working installation of the current version of a Python of your choice.
-
-Across these pages we will refer to the standard Python_ distribution.
-
-.. _Python: http://www.python.org/
-
-Obviously, we're not going to reinvent the wheel, so we have chosen to use
-some Python libraries for some specific tasks:
-
-* the pySerial_ library
-* the Python Tkinter_ GUI library, which comes with the standard
- Python setup
-
-.. _pySerial: http://pyserial.sourceforge.net/
-.. _Tkinter: http://wiki.python.org/moin/TkInter
-
-pySerial is needed for downloading data from the serial port (even
-through a :term:`serial-USB adapter`).
-
-Tkinter is at the moment responsible of the Graphical User
-Interface. This might change in future releases of Total Open
-Station.
-
-Getting Python
-==============
-
-If you're on GNU/Linux or a recent Mac OSX, Python should be already
-installed on your system, so you just need to get the mentioned
-libraries.
-
-On Windows, you can get an installer from the main Python website, in
-the download_ section.
-
-.. _download: http://www.python.org/download/
-
-Getting libraries
-=================
-
-Generally speaking, refer to the `pySerial website`_.
-
-.. _`pySerial website`: http://pyserial.sourceforge.net/pyserial.html#installation
-
-GNU/Linux
----------
-
-Use your package manager (``apt-get``, ``yum``) and look
-for a package named ``python-serial`` or ``pyserial`` and install
-it. To test whether the installation went fine, open a terminal, start
-the python interpreter with ``python`` and at the prompt type ``import
-serial`` then return. It should say nothing, like this:
-
->>> import serial
-
-If it complains, something went wrong::
-
- >>> import serial
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- ImportError: No module named serial
-
-and you need to check with your distribution package manager and bug
-reporting system.
-
-Mac OSX
--------
-
-The simplest way is probably to install setuptools and use::
-
- easy_install -U pyserial
-
-Microsoft Windows
------------------
-
-The pySerial website has executable installers for various versions of
-this operating system. As pySerial's documentation says, you will need
-also the pywin32_ library by Mark Hammond.
-
-.. _pywin32: http://pypi.python.org/pypi/pywin32
diff --git a/docs/roadmap.txt b/docs/roadmap.rst
similarity index 59%
rename from docs/roadmap.txt
rename to docs/roadmap.rst
index 53ff201..b18c93c 100644
--- a/docs/roadmap.txt
+++ b/docs/roadmap.rst
@@ -7,16 +7,16 @@
Present
=======
-Total Open Station is at version 0.2, which is an **alpha** release.
+Total Open Station is at version |version|, which is an **alpha**
+release. We think it works quite well, but the number of supported
+formats is still too small for a beta release.
Near Future
===========
-Total Open Station 0.3 will be released by June 2011. Planned
-features include:
-
-- more responsive download dialogs
-- more solid internal data format
+The next version of Total Open Station will be released in 2012. See
+what features are being `worked on
+<https://bitbucket.org/steko/totalopenstation/issues?milestone=0.4>`_.
Future
======
diff --git a/docs/running.rst b/docs/running.rst
new file mode 100644
index 0000000..4f2fc4a
--- /dev/null
+++ b/docs/running.rst
@@ -0,0 +1,128 @@
+.. _running:
+
+==========================
+ Using Total Open Station
+==========================
+
+There are two ways to use Total Open Station, from the command line or
+as a user-friendly program. Each mode of operation has its drawbacks,
+and both are constantly used and tested.
+
+Graphical User Interface
+========================
+
+If you followed the guide about :ref:`installing`, you should be able
+to start Total Open Station.
+
+The basic usage of Total Open Station is made of the following steps:
+
+#. download raw data from the total station
+#. save raw data (optional, but recommended)
+#. export raw data to an output format
+
+Saving raw data enables you to open data files even at a later stage
+and process them when it's more appropriate.
+
+Downloading raw data
+--------------------
+
+To download raw data, your total station must be connected to the
+computer you are using, and the connection parameters must be known
+and set in the program. Total Open Station saves certain parameters
+across work sessions, but not all of them are saved, yet.
+
+The normal download procedure is a four-step operation:
+
+#. once the right parameters are set, click on the :guilabel:`Connect`
+ button
+#. a small window appears, telling that the program is ready to start
+ the download
+#. start the data transfer from the menu of the total station
+#. press the :guilabel:`OK` button in the small window (the order of
+ these two last steps matters)
+
+Downloaded data will be shown in real-time in the main program
+window. A short information dialog will appear at the end of the
+transfer. If any error blocks you in this procedure, please send a
+detailed description to the mailing list so we can help you.
+
+Saving raw data
+---------------
+
+Raw data shown in the main program window can be edited if you need,
+and saved to disk clicking the :guilabel:`Save raw data` button. We
+highly recommend to save all data to disk before any other action,
+because it prevents data loss and it is a very convenient way to have
+a backup of your work. Plus, raw data files are generally very small
+in size if compared to the exported files.
+
+By default saved files get a :file:`.tops` extension, but it is
+absolutely optional to have this extension.
+
+Opening previously saved data
+-----------------------------
+
+The :guilabel:`Open file` button lets you open any ASCII file you have on
+your disk for processing with Total Open Station, either previously
+saved with TOPS itself or not.
+
+Data can be edited in the text area. Editing patterns include:
+
+- removing lines of data that don't need to be processed
+- correcting errors in data
+- pasting more than one data file together
+
+Please note that if you do not know well the raw data format you are
+editing, data may become inconsistent, and it will not be possible to
+process them properly later. If you are unsure, do not edit raw data.
+
+Exporting data
+--------------
+
+The main purpose of Total Open Station is to export raw data in
+formats that are not read by GIS and CAD programs, to common formats
+that are easy to import.
+
+To start exporting data, make sure that the text area in the main
+program window contains the data you want to export. If this is not
+the case, you can either download data from your total station or open
+a previously-saved data file.
+
+Click the :guilabel:`Process data` button. A window will appear,
+allowing you to choose two processing options:
+
+- the input format
+- the output format
+
+Select the input format of the raw data you have (if you are using the
+same total station all the time, it will be probably the same -- we
+are working on adding a way to save the last used formats across
+different working sessions).
+
+Then select the output format you want to use, and proceed with the
+:guilabel:`OK` button. You will be asked where you want to save the
+exported file.
+
+You can now open your exported data in the GIS or CAD program of
+choice for further processing. Should you need to go back to the
+original data, you can always repeat the above procedure starting from
+the saved raw data file.
+
+Command-line
+============
+
+After :ref:`installing`, there will be three new executable programs
+in your path. Two of them are meant for being run in a terminal, and
+are extremely useful for batch operations and easy repeating of common
+tasks with minimum time effort.
+
+:program:`totalopenstation-cli-connector` and
+:program:`totalopenstation-cli-parser` are two command line programs
+that make the same features of the graphical interface available to
+those who prefer working in a terminal. They are well documented, and
+they make it possible to process large amounts of data files via shell
+scripting, or to drastically reduce the time needed for downloading
+raw data.
+
+These two programs also provide a basic but complete example of how to
+use Total Open Station as a programming library.
diff --git a/docs/running.txt b/docs/running.txt
deleted file mode 100644
index ddf69f4..0000000
--- a/docs/running.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-.. _running:
-
-============================
- Running Total Open Station
-============================
-
-There are two ways to use Total Open Station, from the command line or
-as a user-friendly program. Each mode of operation has its drawbacks,
-and both are constantly used and tested.
-
-Command-line
-============
-
-After :ref:`installing`, there will be three new executable programs
-in your path. Two of them are meant for being run in a terminal, and
-are extremely useful for batch operations and easy repeating of common
-tasks with minimum time effort.
-
-
diff --git a/docs/users.txt b/docs/users.rst
similarity index 57%
rename from docs/users.txt
rename to docs/users.rst
index df486f9..188223d 100644
--- a/docs/users.txt
+++ b/docs/users.rst
@@ -6,19 +6,21 @@
So far, Total Open Station has been successfully used by:
- * Università di Siena, `Dipartimento di Archeologia e Storia delle
+ * Università di Siena, Italy `Dipartimento di Archeologia e Storia delle
Arti`_, for the excavations at Gortyna and Vignale
- * `Oxford Archaeology`_, for fieldwork, using the OpenMoko_ mobile
+ * `Oxford Archaeology`_, UK, for fieldwork, using the OpenMoko_ mobile
platform
- * `Arke_Geomática`_ has blogged about TOPS
- * Arc-Team_: we have added support for the Trimble “area” format
+ * `Arke_Geomática`_, Spain has blogged about TOPS
+ * Arc-Team_, Italy, we have added support for the Trimble “area” format
after Arc-Team sent us some sample data
- * Università di Padova
+ * Università di Padova, Italy (excavation in Montegrotto)
+ * `Gurob Harem Palace Project`_, Egypt
-.. _`Dipartimento di Archeologia e Storia delle Arti`: http://www.archeo.unisi.it
+.. _`Dipartimento di Archeologia e Storia delle Arti`: http://www.archeoarti.unisi.it
.. _`Oxford Archaeology`: http://thehumanjourney.net/
.. _OpenMoko: http://blogs.thehumanjourney.net/finds/entry/2
.. _Arke_Geomática: http://arkeox.blogspot.com/2008/10/sistemas-electrnicosdigitales-de.html
.. _Arc-Team: http://www.arc-team.com/
+.. _`Gurob Harem Palace Project`: http://www.gurob.org.uk/
If you're in the number of happy users, let us know.
diff --git a/po/totalopenstation.pot b/locale/de/LC_MESSAGES/messages.po
similarity index 62%
copy from po/totalopenstation.pot
copy to locale/de/LC_MESSAGES/messages.po
index 87da2fe..1ac26e7 100644
--- a/po/totalopenstation.pot
+++ b/locale/de/LC_MESSAGES/messages.po
@@ -1,41 +1,44 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
+#
+# Translators:
+# Stefano Costa <steko at iosa.it>, 2013
+# Wasilis <inactive+Wasilis at transifex.com>, 2013
msgid ""
msgstr ""
-"Project-Id-Version: Total Open Station 0.2\n"
-"Report-Msgid-Bugs-To: \n"
+"Project-Id-Version: Total Open Station\n"
+"Report-Msgid-Bugs-To: http://bitbucket.org/steko/totalopenstation/issues/\n"
"POT-Creation-Date: 2010-02-08 16:07+0100\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"PO-Revision-Date: 2013-05-10 15:30+0000\n"
+"Last-Translator: Stefano Costa <steko at iosa.it>\n"
+"Language-Team: German (http://www.transifex.com/projects/p/totalopenstation/language/de/)\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: de\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../scripts/totalopenstation-cli-parser.py:31
msgid "usage: %prog [option] arg1 [option] arg2 ..."
-msgstr ""
+msgstr "Nutzung: %prog [Option] arg1 [Option] arg2 ..."
#: ../scripts/totalopenstation-cli-parser.py:39
msgid "select input FILE (do not specify for stdin)"
-msgstr ""
+msgstr "Wähleingang Datei (nicht für stdin angeben)"
#: ../scripts/totalopenstation-cli-parser.py:46
msgid "select output FILE (do not specify for stdout)"
-msgstr ""
+msgstr "Ausgabedatei auswählen (nicht für stdout angeben) "
#: ../scripts/totalopenstation-cli-parser.py:53
#: ../scripts/totalopenstation-cli-parser.py:60
msgid "select input FORMAT"
-msgstr ""
+msgstr "Eingang wählen FORMAT "
#: ../scripts/totalopenstation-cli-parser.py:67
msgid "overwrite existing output file"
-msgstr ""
+msgstr " \t\nüberschreiben vorhandene Ausgabedatei "
#: ../scripts/totalopenstation-cli-parser.py:79
#, python-format
@@ -45,33 +48,33 @@ msgid ""
"%s\n"
"\n"
"%s"
-msgstr ""
+msgstr "\nFehler:\n%s\n\n%s"
#: ../scripts/totalopenstation-cli-parser.py:81
msgid "Please specify an input format"
-msgstr ""
+msgstr "Bitte geben Sie ein Input-Format"
#: ../scripts/totalopenstation-cli-parser.py:93
msgid "Please specify an output format"
-msgstr ""
+msgstr "Bitte geben Sie ein Ausgabeformat "
#: ../scripts/totalopenstation-cli-parser.py:117
#, python-format
msgid "Downloaded data saved to out file %s"
-msgstr ""
+msgstr "Heruntergeladene Daten aus Datei %s gespeichert "
#: ../scripts/totalopenstation-cli-parser.py:121
#, python-format
msgid "Downloaded data saved to file %s,"
-msgstr ""
+msgstr "Heruntergeladene Daten gespeichert in Datei %s, "
#: ../scripts/totalopenstation-cli-parser.py:122
msgid "overwriting the existing file"
-msgstr ""
+msgstr "Überschreiben der vorhandenen Datei "
#: ../scripts/totalopenstation-cli-parser.py:124
msgid "Specified output file already exists\n"
-msgstr ""
+msgstr "Angegebene Ausgabedatei existiert bereits⏎\n"
#: ../scripts/totalopenstation-gui.py:99
msgid ""
@@ -82,7 +85,7 @@ msgid ""
"http://tops.berlios.de/\n"
"\n"
"The application logo is copyright 2008 Lapo Calamandrei."
-msgstr ""
+msgstr "\nTotal Open Station is copyright 2008-2009 Luca Bianconi, Stefano Costa\nand the IOSA project.\n\nhttp://tops.berlios.de/\n\nThe application logo is copyright 2008 Lapo Calamandrei."
#: ../scripts/totalopenstation-gui.py:131
msgid ""
@@ -90,147 +93,147 @@ msgid ""
"This dialog will guide you through the download procedure.\n"
"\n"
"Press OK when finished to proceed."
-msgstr ""
+msgstr "\nDieser Dialog wird Sie durch den Download-Vorgang zu führen.\n \nDrücken Sie OK, wenn Sie fertig sind , um fortzufahren. "
#: ../scripts/totalopenstation-gui.py:164
msgid "waiting for data from device"
-msgstr ""
+msgstr "Warten auf Daten vom Gerät "
#: ../scripts/totalopenstation-gui.py:165
msgid "Connection initialized with the following parameters:\n"
-msgstr ""
+msgstr "Verbindung mit den folgenden Parametern initialisiert:⏎\n"
#: ../scripts/totalopenstation-gui.py:167
msgid ""
"\n"
"Start the download procedure on the device.\n"
-msgstr ""
+msgstr "\nBeginn des Download-Vorgangs auf dem Gerät.\n"
#: ../scripts/totalopenstation-gui.py:168
msgid "Press OK when done."
-msgstr ""
+msgstr "Drücken Sie OK, wenn Sie fertig sind. "
#: ../scripts/totalopenstation-gui.py:187
msgid "Choose output format and destination file"
-msgstr ""
+msgstr "Wählen Sie das Ausgabeformat und die Zieldatei"
#: ../scripts/totalopenstation-gui.py:188
msgid "Output format:\n"
-msgstr ""
+msgstr "Ausgabeformat:⏎\n"
#: ../scripts/totalopenstation-gui.py:201
msgid "Data to be processed:\n"
-msgstr ""
+msgstr "Daten die verarbeitet werden:\n"
#: ../scripts/totalopenstation-gui.py:204
msgid "Input format"
-msgstr ""
+msgstr "Eingabeformat "
#: ../scripts/totalopenstation-gui.py:209
msgid "choose a model"
-msgstr ""
+msgstr "ein model auswählen"
#: ../scripts/totalopenstation-gui.py:245
msgid "Error"
-msgstr ""
+msgstr "Fehler"
#: ../scripts/totalopenstation-gui.py:246
msgid "Connection failed with the following error message:\n"
-msgstr ""
+msgstr "Die Verbindung wurde mit der folgenden Fehlermeldung unterbrochen::\n"
#: ../scripts/totalopenstation-gui.py:247
msgid ""
"\n"
"Check your connection parameters and try again.\n"
-msgstr ""
+msgstr "\nÜberprüfen Sie Ihre Verbindungsparameter und versuchen Sie es erneut. \n"
#: ../scripts/totalopenstation-gui.py:259
msgid "Cancel"
-msgstr ""
+msgstr "Abbrechen"
#: ../scripts/totalopenstation-gui.py:325
msgid "Port"
-msgstr ""
+msgstr "Port"
#: ../scripts/totalopenstation-gui.py:362
msgid "Total Station"
-msgstr ""
+msgstr "Total Station"
#: ../scripts/totalopenstation-gui.py:393
#: ../scripts/totalopenstation-gui.py:418
#: ../scripts/totalopenstation-gui.py:449
#: ../scripts/totalopenstation-gui.py:477
msgid "choose a value"
-msgstr ""
+msgstr "wählen Sie einen Wert"
#: ../scripts/totalopenstation-gui.py:412
msgid "Bytesize"
-msgstr ""
+msgstr "Bytesize"
#: ../scripts/totalopenstation-gui.py:443
msgid "Parity setting"
-msgstr ""
+msgstr "Parity Einstellung"
#: ../scripts/totalopenstation-gui.py:455
msgid "Even"
-msgstr ""
+msgstr "Gerade "
#: ../scripts/totalopenstation-gui.py:458
msgid "None"
-msgstr ""
+msgstr "keiner "
#: ../scripts/totalopenstation-gui.py:461
msgid "Odd"
-msgstr ""
+msgstr "ungerade "
#: ../scripts/totalopenstation-gui.py:471
msgid "Stop bit"
-msgstr ""
+msgstr "Stopp-Bit "
#: ../scripts/totalopenstation-gui.py:513
msgid "Connect"
-msgstr ""
+msgstr "Verbinden"
#: ../scripts/totalopenstation-gui.py:522
msgid "Open file"
-msgstr ""
+msgstr "Datei öffnen"
#: ../scripts/totalopenstation-gui.py:530
msgid "Save raw data"
-msgstr ""
+msgstr "Rohdaten speichern"
#: ../scripts/totalopenstation-gui.py:538
msgid "Process data"
-msgstr ""
+msgstr "Prozedurdaten"
#: ../scripts/totalopenstation-gui.py:547
msgid "About TOPS"
-msgstr ""
+msgstr "Über TOPS"
#: ../scripts/totalopenstation-gui.py:555
msgid "Quit"
-msgstr ""
+msgstr "Beenden"
#: ../scripts/totalopenstation-gui.py:567
msgid ""
"Welcome.\n"
"Turn your device on."
-msgstr ""
+msgstr "Willkommen. \nSchalten Sie Ihr Gerät ein. "
#: ../scripts/totalopenstation-gui.py:669
msgid "The download has started..."
-msgstr ""
+msgstr "Das Herunterladen wurde gestartet..."
#: ../scripts/totalopenstation-gui.py:671
msgid ""
"The download has finished.\n"
"Press OK to proceed"
-msgstr ""
+msgstr "Das Herunterladen wurde beendet.\nDrücken sie auf OK um fortzufahren"
#: ../scripts/totalopenstation-gui.py:712
msgid "No output file specified"
-msgstr ""
+msgstr "Keine Ausgabe-Datei angegeben "
#: ../scripts/totalopenstation-gui.py:713
msgid "No processing settings entered!\n"
-msgstr ""
+msgstr "Keine Verarbeitung der eingegebenen Einstellungen! \n"
diff --git a/po/el.po b/locale/el/LC_MESSAGES/messages.po
similarity index 73%
rename from po/el.po
rename to locale/el/LC_MESSAGES/messages.po
index d9df838..1ddf1ca 100644
--- a/po/el.po
+++ b/locale/el/LC_MESSAGES/messages.po
@@ -1,33 +1,41 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# Stefano Costa <steko at iosa.it>, 2013
+# Wasilis <m.wasilis at yahoo.de>, 2013
+# Konstantinos Papaspyrou <kotsos at gmail.com>, 2010
msgid ""
msgstr ""
-"Project-Id-Version: el v0.1\n"
-"Report-Msgid-Bugs-To: \n"
+"Project-Id-Version: Total Open Station\n"
+"Report-Msgid-Bugs-To: http://bitbucket.org/steko/totalopenstation/issues/\n"
"POT-Creation-Date: 2010-02-08 16:07+0100\n"
-"PO-Revision-Date: 2010-02-28 20:29+0200\n"
-"Last-Translator: Konstantinos Papaspyrou <kotsos at gmail.com>\n"
-"Language-Team: Greek\n"
+"PO-Revision-Date: 2013-05-08 20:50+0000\n"
+"Last-Translator: Stefano Costa <steko at iosa.it>\n"
+"Language-Team: Greek (http://www.transifex.com/projects/p/totalopenstation/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Greek\n"
+"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../scripts/totalopenstation-cli-parser.py:31
msgid "usage: %prog [option] arg1 [option] arg2 ..."
-msgstr "usage: %prog [option] arg1 [option] arg2 ..."
+msgstr "Χρήση: %prog [επιλογή] arg1 [επιλογή] arg2 ..."
#: ../scripts/totalopenstation-cli-parser.py:39
msgid "select input FILE (do not specify for stdin)"
-msgstr "select input FILE (do not specify for stdin)"
+msgstr "επιλέξτε το αρχείο εισόδου (δεν προσδιορίζει για stdin) "
#: ../scripts/totalopenstation-cli-parser.py:46
msgid "select output FILE (do not specify for stdout)"
-msgstr "select output FILE (do not specify for stdout)"
+msgstr "επιλέξτε το αρχείο εξόδου (δεν προσδιορίζει για stdout)"
#: ../scripts/totalopenstation-cli-parser.py:53
#: ../scripts/totalopenstation-cli-parser.py:60
msgid "select input FORMAT"
-msgstr "select input FORMAT"
+msgstr "Επιλέξτε τη μορφή εισόδου "
#: ../scripts/totalopenstation-cli-parser.py:67
msgid "overwrite existing output file"
@@ -41,12 +49,7 @@ msgid ""
"%s\n"
"\n"
"%s"
-msgstr ""
-"\n"
-"Σφάλμα:\n"
-"%s\n"
-"\n"
-"%s"
+msgstr "\nΣφάλμα:\n%s\n\n%s"
#: ../scripts/totalopenstation-cli-parser.py:81
msgid "Please specify an input format"
@@ -59,7 +62,7 @@ msgstr "Παρακαλώ προσδιορίστε τον τύπο του αρχ
#: ../scripts/totalopenstation-cli-parser.py:117
#, python-format
msgid "Downloaded data saved to out file %s"
-msgstr "Downloaded data saved to out file %s"
+msgstr "Τα ληφθέντα δεδομένα αποθηκεύτηκαν στο αρχείο %s,"
#: ../scripts/totalopenstation-cli-parser.py:121
#, python-format
@@ -83,14 +86,7 @@ msgid ""
"http://tops.berlios.de/\n"
"\n"
"The application logo is copyright 2008 Lapo Calamandrei."
-msgstr ""
-"\n"
-"Total Open Station is copyright 2008-2009 Luca Bianconi, Stefano Costa\n"
-"and the IOSA project.\n"
-"\n"
-"http://tops.berlios.de/\n"
-"\n"
-"The application logo is copyright 2008 Lapo Calamandrei."
+msgstr "\nΠνευματικά δικαιώματα © 2008-2009 Οι συγγραφείς του Total Open Station.⏎\n\nhttp://tops.berlios.de/\n\nThe application logo is copyright 2008 Lapo Calamandrei."
#: ../scripts/totalopenstation-gui.py:131
msgid ""
@@ -98,11 +94,7 @@ msgid ""
"This dialog will guide you through the download procedure.\n"
"\n"
"Press OK when finished to proceed."
-msgstr ""
-"\n"
-"Το παράθυρο διαλόγου θα σας καθοδηγήσει στη διαδικασία λήψης δεδομένων.\n"
-"\n"
-"Press OK when finished to proceed."
+msgstr "\nΤο παράθυρο διαλόγου θα σας καθοδηγήσει στη διαδικασία λήψης δεδομένων.\n\nPress OK when finished to proceed."
#: ../scripts/totalopenstation-gui.py:164
msgid "waiting for data from device"
@@ -116,9 +108,7 @@ msgstr "Η σύνδεση γίνεται με τις ακόλουθες παρα
msgid ""
"\n"
"Start the download procedure on the device.\n"
-msgstr ""
-"\n"
-"Ξεκινήστε από το όργανο τη διαδικασία αποστολής αρχείου.\n"
+msgstr "\nΞεκινήστε από το όργανο τη διαδικασία αποστολής αρχείου.\n"
#: ../scripts/totalopenstation-gui.py:168
msgid "Press OK when done."
@@ -138,7 +128,7 @@ msgstr "Data to be processed:\n"
#: ../scripts/totalopenstation-gui.py:204
msgid "Input format"
-msgstr "Input format"
+msgstr "Μορφη εισαγωγης"
#: ../scripts/totalopenstation-gui.py:209
msgid "choose a model"
@@ -156,9 +146,7 @@ msgstr "Η επικοινωνία απέτυχε με το ακόλουθο μή
msgid ""
"\n"
"Check your connection parameters and try again.\n"
-msgstr ""
-"\n"
-"Ελέγξτε τις παραμέτρους επικοινωνίας και δοκιμάστε ξανά.\n"
+msgstr "\nΕλέγξτε τις παραμέτρους επικοινωνίας και δοκιμάστε ξανά.\n"
#: ../scripts/totalopenstation-gui.py:259
msgid "Cancel"
@@ -185,7 +173,7 @@ msgstr "Bytesize"
#: ../scripts/totalopenstation-gui.py:443
msgid "Parity setting"
-msgstr "Parity setting"
+msgstr "Ρύθμιση ισοτιμιας"
#: ../scripts/totalopenstation-gui.py:455
msgid "Even"
@@ -213,11 +201,11 @@ msgstr "Άνοιγμα αρχείου"
#: ../scripts/totalopenstation-gui.py:530
msgid "Save raw data"
-msgstr "Save raw data"
+msgstr "Αποθήκευση ανεπεξέργαστων δεδομένων "
#: ../scripts/totalopenstation-gui.py:538
msgid "Process data"
-msgstr "Process data"
+msgstr "Τα στοιχεία της διαδικασίας "
#: ../scripts/totalopenstation-gui.py:547
msgid "About TOPS"
@@ -231,9 +219,7 @@ msgstr "Έξοδος"
msgid ""
"Welcome.\n"
"Turn your device on."
-msgstr ""
-"Καλωσήρθατε.\n"
-"Ανοίξτε το Γεωδαιτικό σταθμό."
+msgstr "Καλωσήρθατε.\nΑνοίξτε το Γεωδαιτικό σταθμό."
#: ../scripts/totalopenstation-gui.py:669
msgid "The download has started..."
@@ -243,9 +229,7 @@ msgstr "Η λήψη δεδομένων ξεκίνησε..."
msgid ""
"The download has finished.\n"
"Press OK to proceed"
-msgstr ""
-"Η λήψη ολοκληρώθηκε.\n"
-"Πατήστε OK για να συνεχίσετε"
+msgstr "Η λήψη ολοκληρώθηκε.\nΠατήστε OK για να συνεχίσετε"
#: ../scripts/totalopenstation-gui.py:712
msgid "No output file specified"
@@ -254,4 +238,3 @@ msgstr "Δεν καθορίσθηκε αρχείο προορισμού"
#: ../scripts/totalopenstation-gui.py:713
msgid "No processing settings entered!\n"
msgstr "Δεν δόθηκαν παράμετροι επεξεργασίας!\n"
-
diff --git a/po/totalopenstation.pot b/locale/es_ES/LC_MESSAGES/messages.po
similarity index 92%
copy from po/totalopenstation.pot
copy to locale/es_ES/LC_MESSAGES/messages.po
index 87da2fe..6b7c558 100644
--- a/po/totalopenstation.pot
+++ b/locale/es_ES/LC_MESSAGES/messages.po
@@ -1,20 +1,22 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
+#
+# Translators:
+# Stefano Costa <steko at iosa.it>, 2011
msgid ""
msgstr ""
-"Project-Id-Version: Total Open Station 0.2\n"
-"Report-Msgid-Bugs-To: \n"
+"Project-Id-Version: Total Open Station\n"
+"Report-Msgid-Bugs-To: http://bitbucket.org/steko/totalopenstation/issues/\n"
"POT-Creation-Date: 2010-02-08 16:07+0100\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"PO-Revision-Date: 2011-03-22 15:12+0000\n"
+"Last-Translator: Stefano Costa <steko at iosa.it>\n"
"Language-Team: LANGUAGE <LL at li.org>\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: es_ES\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../scripts/totalopenstation-cli-parser.py:31
msgid "usage: %prog [option] arg1 [option] arg2 ..."
@@ -132,7 +134,7 @@ msgstr ""
#: ../scripts/totalopenstation-gui.py:245
msgid "Error"
-msgstr ""
+msgstr "Error"
#: ../scripts/totalopenstation-gui.py:246
msgid "Connection failed with the following error message:\n"
diff --git a/po/totalopenstation.pot b/locale/fa/LC_MESSAGES/messages.po
similarity index 56%
copy from po/totalopenstation.pot
copy to locale/fa/LC_MESSAGES/messages.po
index 87da2fe..8159fa1 100644
--- a/po/totalopenstation.pot
+++ b/locale/fa/LC_MESSAGES/messages.po
@@ -1,41 +1,44 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
+#
+# Translators:
+# Mohammad Dashtizadeh <mohammad at dashtizadeh.net>, 2012
+# Mohammad Hosseini <PersianPolaris at Gmail.com>, 2011, 2012
msgid ""
msgstr ""
-"Project-Id-Version: Total Open Station 0.2\n"
-"Report-Msgid-Bugs-To: \n"
+"Project-Id-Version: Total Open Station\n"
+"Report-Msgid-Bugs-To: http://bitbucket.org/steko/totalopenstation/issues/\n"
"POT-Creation-Date: 2010-02-08 16:07+0100\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"PO-Revision-Date: 2012-07-08 13:08+0000\n"
+"Last-Translator: Mohammad Hosseini <PersianPolaris at Gmail.com>\n"
+"Language-Team: Persian <PersianPolaris at Gmail.com>\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: fa\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
#: ../scripts/totalopenstation-cli-parser.py:31
msgid "usage: %prog [option] arg1 [option] arg2 ..."
-msgstr ""
+msgstr "استفاده : %prog [option] arg1 [option] arg2 ..."
#: ../scripts/totalopenstation-cli-parser.py:39
msgid "select input FILE (do not specify for stdin)"
-msgstr ""
+msgstr "فایل ورودی را مشخص کنید (برای stin مشخص نکنید)"
#: ../scripts/totalopenstation-cli-parser.py:46
msgid "select output FILE (do not specify for stdout)"
-msgstr ""
+msgstr "فایل خروجی را مشخص کنید (برای stdout مشخص نکنید)"
#: ../scripts/totalopenstation-cli-parser.py:53
#: ../scripts/totalopenstation-cli-parser.py:60
msgid "select input FORMAT"
-msgstr ""
+msgstr "انتخاب فرمت ورودی"
#: ../scripts/totalopenstation-cli-parser.py:67
msgid "overwrite existing output file"
-msgstr ""
+msgstr "بازنویسی روي فایل خروجی موجود"
#: ../scripts/totalopenstation-cli-parser.py:79
#, python-format
@@ -45,33 +48,33 @@ msgid ""
"%s\n"
"\n"
"%s"
-msgstr ""
+msgstr "\nخطا:\n%s\n\n%s"
#: ../scripts/totalopenstation-cli-parser.py:81
msgid "Please specify an input format"
-msgstr ""
+msgstr "لطفا یک فرمت ورودی را مشخص نماييد"
#: ../scripts/totalopenstation-cli-parser.py:93
msgid "Please specify an output format"
-msgstr ""
+msgstr "لطفاً یک فرمت خروجی مشخص کنید"
#: ../scripts/totalopenstation-cli-parser.py:117
#, python-format
msgid "Downloaded data saved to out file %s"
-msgstr ""
+msgstr "اطلاعات بارگیری شده در فایل خروجی %s ذخیره شد."
#: ../scripts/totalopenstation-cli-parser.py:121
#, python-format
msgid "Downloaded data saved to file %s,"
-msgstr ""
+msgstr "اطلاعات دانلود شده به صورت فايل ذخيره شود %s,"
#: ../scripts/totalopenstation-cli-parser.py:122
msgid "overwriting the existing file"
-msgstr ""
+msgstr "بازنویسی فایل موجود"
#: ../scripts/totalopenstation-cli-parser.py:124
msgid "Specified output file already exists\n"
-msgstr ""
+msgstr "فایل خروجی مشخص شده وجود دارد.\n"
#: ../scripts/totalopenstation-gui.py:99
msgid ""
@@ -82,7 +85,7 @@ msgid ""
"http://tops.berlios.de/\n"
"\n"
"The application logo is copyright 2008 Lapo Calamandrei."
-msgstr ""
+msgstr "\nحقوق Total Open Station در سال 2008-2009 توسط Luca Bianconi و Stefano Costa و پروژه IOSA محفوظ است.\n\nhttp://tops.berlios.de/\n\nحقوقِ نشان نرمافزار در سال 2008 متعلق به Lapo Calamandrei است."
#: ../scripts/totalopenstation-gui.py:131
msgid ""
@@ -90,147 +93,147 @@ msgid ""
"This dialog will guide you through the download procedure.\n"
"\n"
"Press OK when finished to proceed."
-msgstr ""
+msgstr "\nاین گفت و گو شما را در روند بارگیری راهنمایی میکند.\n\nزمانی که پردازش به اتمام رسید بر روی OK کلیک کنید."
#: ../scripts/totalopenstation-gui.py:164
msgid "waiting for data from device"
-msgstr ""
+msgstr "انتظار برای اطلاعات از دستگاه"
#: ../scripts/totalopenstation-gui.py:165
msgid "Connection initialized with the following parameters:\n"
-msgstr ""
+msgstr "اتصال با مقدار اولیه با پیروی از پارامترها:\n"
#: ../scripts/totalopenstation-gui.py:167
msgid ""
"\n"
"Start the download procedure on the device.\n"
-msgstr ""
+msgstr "\nروند بارگیری بر روی دستگاه شروع شده است.\n\n\n"
#: ../scripts/totalopenstation-gui.py:168
msgid "Press OK when done."
-msgstr ""
+msgstr "هنگامي که انجام شد دکمه OK را بزنيد."
#: ../scripts/totalopenstation-gui.py:187
msgid "Choose output format and destination file"
-msgstr ""
+msgstr "انتخاب فرمت خورجی و مقصد فایل"
#: ../scripts/totalopenstation-gui.py:188
msgid "Output format:\n"
-msgstr ""
+msgstr "فرمت خروجی:\n"
#: ../scripts/totalopenstation-gui.py:201
msgid "Data to be processed:\n"
-msgstr ""
+msgstr "اطلاعاتی که پردازش میشود:\n"
#: ../scripts/totalopenstation-gui.py:204
msgid "Input format"
-msgstr ""
+msgstr "فرمت ورودی"
#: ../scripts/totalopenstation-gui.py:209
msgid "choose a model"
-msgstr ""
+msgstr "انتخاب يک مدل"
#: ../scripts/totalopenstation-gui.py:245
msgid "Error"
-msgstr ""
+msgstr "خطا"
#: ../scripts/totalopenstation-gui.py:246
msgid "Connection failed with the following error message:\n"
-msgstr ""
+msgstr "اتصال بدلیل مشکلات زیر برقرار نشد:\n"
#: ../scripts/totalopenstation-gui.py:247
msgid ""
"\n"
"Check your connection parameters and try again.\n"
-msgstr ""
+msgstr "\nپارامترهای اتصال را چک کنید و دوباره امتحان کنید.\n"
#: ../scripts/totalopenstation-gui.py:259
msgid "Cancel"
-msgstr ""
+msgstr "لغو"
#: ../scripts/totalopenstation-gui.py:325
msgid "Port"
-msgstr ""
+msgstr "درگاه"
#: ../scripts/totalopenstation-gui.py:362
msgid "Total Station"
-msgstr ""
+msgstr "توتال استيشن"
#: ../scripts/totalopenstation-gui.py:393
#: ../scripts/totalopenstation-gui.py:418
#: ../scripts/totalopenstation-gui.py:449
#: ../scripts/totalopenstation-gui.py:477
msgid "choose a value"
-msgstr ""
+msgstr "انتخاب يک مقدار"
#: ../scripts/totalopenstation-gui.py:412
msgid "Bytesize"
-msgstr ""
+msgstr "اندازهی بایت"
#: ../scripts/totalopenstation-gui.py:443
msgid "Parity setting"
-msgstr ""
+msgstr "تنظیمات توازن"
#: ../scripts/totalopenstation-gui.py:455
msgid "Even"
-msgstr ""
+msgstr "حتی"
#: ../scripts/totalopenstation-gui.py:458
msgid "None"
-msgstr ""
+msgstr "هیچ یک"
#: ../scripts/totalopenstation-gui.py:461
msgid "Odd"
-msgstr ""
+msgstr "فرد"
#: ../scripts/totalopenstation-gui.py:471
msgid "Stop bit"
-msgstr ""
+msgstr "ذرهی ایست نما"
#: ../scripts/totalopenstation-gui.py:513
msgid "Connect"
-msgstr ""
+msgstr "اتصال"
#: ../scripts/totalopenstation-gui.py:522
msgid "Open file"
-msgstr ""
+msgstr "باز کردن فایل"
#: ../scripts/totalopenstation-gui.py:530
msgid "Save raw data"
-msgstr ""
+msgstr "ذخیره داده های خام"
#: ../scripts/totalopenstation-gui.py:538
msgid "Process data"
-msgstr ""
+msgstr "پردازش اطلاعات"
#: ../scripts/totalopenstation-gui.py:547
msgid "About TOPS"
-msgstr ""
+msgstr "درباره TOPS"
#: ../scripts/totalopenstation-gui.py:555
msgid "Quit"
-msgstr ""
+msgstr "خارج شدن"
#: ../scripts/totalopenstation-gui.py:567
msgid ""
"Welcome.\n"
"Turn your device on."
-msgstr ""
+msgstr "خوش آمدید.⏎\nدستگاه را روشن کنید."
#: ../scripts/totalopenstation-gui.py:669
msgid "The download has started..."
-msgstr ""
+msgstr "بارگیری آغاز شده است..."
#: ../scripts/totalopenstation-gui.py:671
msgid ""
"The download has finished.\n"
"Press OK to proceed"
-msgstr ""
+msgstr "بارگیری به اتمام رسیده است.⏎\nبرای ادامه روی دکمهی تایید کلیک کنید."
#: ../scripts/totalopenstation-gui.py:712
msgid "No output file specified"
-msgstr ""
+msgstr "هیچ فایل خروجی مشخص نشده"
#: ../scripts/totalopenstation-gui.py:713
msgid "No processing settings entered!\n"
-msgstr ""
+msgstr "تنظیمات پردازشی وارد نشده است!\n"
diff --git a/po/totalopenstation.pot b/locale/fr/LC_MESSAGES/messages.po
similarity index 92%
copy from po/totalopenstation.pot
copy to locale/fr/LC_MESSAGES/messages.po
index 87da2fe..5339492 100644
--- a/po/totalopenstation.pot
+++ b/locale/fr/LC_MESSAGES/messages.po
@@ -1,20 +1,21 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
+#
+# Translators:
msgid ""
msgstr ""
-"Project-Id-Version: Total Open Station 0.2\n"
-"Report-Msgid-Bugs-To: \n"
+"Project-Id-Version: Total Open Station\n"
+"Report-Msgid-Bugs-To: http://bitbucket.org/steko/totalopenstation/issues/\n"
"POT-Creation-Date: 2010-02-08 16:07+0100\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: 2010-11-30 05:29+0000\n"
"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/totalopenstation/language/fr/)\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: fr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: ../scripts/totalopenstation-cli-parser.py:31
msgid "usage: %prog [option] arg1 [option] arg2 ..."
diff --git a/po/it.po b/locale/it/LC_MESSAGES/messages.po
similarity index 100%
rename from po/it.po
rename to locale/it/LC_MESSAGES/messages.po
diff --git a/po/totalopenstation.pot b/locale/pl/LC_MESSAGES/messages.po
similarity index 65%
copy from po/totalopenstation.pot
copy to locale/pl/LC_MESSAGES/messages.po
index 87da2fe..1cd1edf 100644
--- a/po/totalopenstation.pot
+++ b/locale/pl/LC_MESSAGES/messages.po
@@ -1,41 +1,43 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
+#
+# Translators:
+# fklosowski <filip at geoida.pl>, 2013
msgid ""
msgstr ""
-"Project-Id-Version: Total Open Station 0.2\n"
-"Report-Msgid-Bugs-To: \n"
+"Project-Id-Version: Total Open Station\n"
+"Report-Msgid-Bugs-To: http://bitbucket.org/steko/totalopenstation/issues/\n"
"POT-Creation-Date: 2010-02-08 16:07+0100\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"PO-Revision-Date: 2013-05-24 12:40+0000\n"
+"Last-Translator: fklosowski <filip at geoida.pl>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/totalopenstation/language/pl/)\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: pl\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#: ../scripts/totalopenstation-cli-parser.py:31
msgid "usage: %prog [option] arg1 [option] arg2 ..."
-msgstr ""
+msgstr "stosowanie: %prog [option] arg1 [option] arg2 ..."
#: ../scripts/totalopenstation-cli-parser.py:39
msgid "select input FILE (do not specify for stdin)"
-msgstr ""
+msgstr "wybierz plik wejściowy (nie określaj dla stdin)"
#: ../scripts/totalopenstation-cli-parser.py:46
msgid "select output FILE (do not specify for stdout)"
-msgstr ""
+msgstr "wybierz plik wyjściowy (nie określaj dla stdout)"
#: ../scripts/totalopenstation-cli-parser.py:53
#: ../scripts/totalopenstation-cli-parser.py:60
msgid "select input FORMAT"
-msgstr ""
+msgstr "wybierz format wejściowy"
#: ../scripts/totalopenstation-cli-parser.py:67
msgid "overwrite existing output file"
-msgstr ""
+msgstr "nadpisz plik wyjściowy"
#: ../scripts/totalopenstation-cli-parser.py:79
#, python-format
@@ -45,33 +47,33 @@ msgid ""
"%s\n"
"\n"
"%s"
-msgstr ""
+msgstr "\nBłąd:\n%s\n%s"
#: ../scripts/totalopenstation-cli-parser.py:81
msgid "Please specify an input format"
-msgstr ""
+msgstr "Wybierz format wejsciowy"
#: ../scripts/totalopenstation-cli-parser.py:93
msgid "Please specify an output format"
-msgstr ""
+msgstr "Wybierz format wyjściowy"
#: ../scripts/totalopenstation-cli-parser.py:117
#, python-format
msgid "Downloaded data saved to out file %s"
-msgstr ""
+msgstr "Dane zapisano do pliku %s"
#: ../scripts/totalopenstation-cli-parser.py:121
#, python-format
msgid "Downloaded data saved to file %s,"
-msgstr ""
+msgstr "Dane zapisano do pliku %s"
#: ../scripts/totalopenstation-cli-parser.py:122
msgid "overwriting the existing file"
-msgstr ""
+msgstr "nadpisać istniejący plik"
#: ../scripts/totalopenstation-cli-parser.py:124
msgid "Specified output file already exists\n"
-msgstr ""
+msgstr "Plik o tej nazwie już istnieje\n"
#: ../scripts/totalopenstation-gui.py:99
msgid ""
@@ -82,7 +84,7 @@ msgid ""
"http://tops.berlios.de/\n"
"\n"
"The application logo is copyright 2008 Lapo Calamandrei."
-msgstr ""
+msgstr "\n\nTotal Open Station is copyright 2008-2009 Luca Bianconi, Stefano Costa⏎\nand the IOSA project.\n\nhttp://tops.berlios.de/\n\nThe application logo is copyright 2008 Lapo Calamandrei."
#: ../scripts/totalopenstation-gui.py:131
msgid ""
@@ -90,147 +92,147 @@ msgid ""
"This dialog will guide you through the download procedure.\n"
"\n"
"Press OK when finished to proceed."
-msgstr ""
+msgstr "\nTo okno przeprowadzi cię przez proces transmisji danych.\n\nNaciśnij OK aby kontynuować."
#: ../scripts/totalopenstation-gui.py:164
msgid "waiting for data from device"
-msgstr ""
+msgstr "czekam na dane z urządzenia"
#: ../scripts/totalopenstation-gui.py:165
msgid "Connection initialized with the following parameters:\n"
-msgstr ""
+msgstr "Połączenie z instrumentem zainicjowano z następującymi parametrami:\n"
#: ../scripts/totalopenstation-gui.py:167
msgid ""
"\n"
"Start the download procedure on the device.\n"
-msgstr ""
+msgstr "\nUruchom transmisję w urządzeniu.\n"
#: ../scripts/totalopenstation-gui.py:168
msgid "Press OK when done."
-msgstr ""
+msgstr "Naciśnij OK gdy gotowe."
#: ../scripts/totalopenstation-gui.py:187
msgid "Choose output format and destination file"
-msgstr ""
+msgstr "Wybierz format oraz plik docelowy"
#: ../scripts/totalopenstation-gui.py:188
msgid "Output format:\n"
-msgstr ""
+msgstr "Format wyjściowy:\n"
#: ../scripts/totalopenstation-gui.py:201
msgid "Data to be processed:\n"
-msgstr ""
+msgstr "Dane do konwersji:\n"
#: ../scripts/totalopenstation-gui.py:204
msgid "Input format"
-msgstr ""
+msgstr "Format wejściowy"
#: ../scripts/totalopenstation-gui.py:209
msgid "choose a model"
-msgstr ""
+msgstr "wybierz model"
#: ../scripts/totalopenstation-gui.py:245
msgid "Error"
-msgstr ""
+msgstr "Błąd"
#: ../scripts/totalopenstation-gui.py:246
msgid "Connection failed with the following error message:\n"
-msgstr ""
+msgstr "Połączenie z urządzeniem nieudane. Komunikat błędu:\n"
#: ../scripts/totalopenstation-gui.py:247
msgid ""
"\n"
"Check your connection parameters and try again.\n"
-msgstr ""
+msgstr "\nSprawdź parametry i spróbuj ponownie.\n"
#: ../scripts/totalopenstation-gui.py:259
msgid "Cancel"
-msgstr ""
+msgstr "Anuluj"
#: ../scripts/totalopenstation-gui.py:325
msgid "Port"
-msgstr ""
+msgstr "Port"
#: ../scripts/totalopenstation-gui.py:362
msgid "Total Station"
-msgstr ""
+msgstr "Total Station"
#: ../scripts/totalopenstation-gui.py:393
#: ../scripts/totalopenstation-gui.py:418
#: ../scripts/totalopenstation-gui.py:449
#: ../scripts/totalopenstation-gui.py:477
msgid "choose a value"
-msgstr ""
+msgstr "wybierz wartość"
#: ../scripts/totalopenstation-gui.py:412
msgid "Bytesize"
-msgstr ""
+msgstr "Bytesize"
#: ../scripts/totalopenstation-gui.py:443
msgid "Parity setting"
-msgstr ""
+msgstr "Parzystość"
#: ../scripts/totalopenstation-gui.py:455
msgid "Even"
-msgstr ""
+msgstr "Even"
#: ../scripts/totalopenstation-gui.py:458
msgid "None"
-msgstr ""
+msgstr "None"
#: ../scripts/totalopenstation-gui.py:461
msgid "Odd"
-msgstr ""
+msgstr "Odd"
#: ../scripts/totalopenstation-gui.py:471
msgid "Stop bit"
-msgstr ""
+msgstr "Stop bit"
#: ../scripts/totalopenstation-gui.py:513
msgid "Connect"
-msgstr ""
+msgstr "Połącz"
#: ../scripts/totalopenstation-gui.py:522
msgid "Open file"
-msgstr ""
+msgstr "Otwórz plik"
#: ../scripts/totalopenstation-gui.py:530
msgid "Save raw data"
-msgstr ""
+msgstr "Zapisz surowe dane"
#: ../scripts/totalopenstation-gui.py:538
msgid "Process data"
-msgstr ""
+msgstr "Przetwarzanie danych"
#: ../scripts/totalopenstation-gui.py:547
msgid "About TOPS"
-msgstr ""
+msgstr "O TOPS"
#: ../scripts/totalopenstation-gui.py:555
msgid "Quit"
-msgstr ""
+msgstr "Zakończ"
#: ../scripts/totalopenstation-gui.py:567
msgid ""
"Welcome.\n"
"Turn your device on."
-msgstr ""
+msgstr "Witaj.\nWłącz urządzenie."
#: ../scripts/totalopenstation-gui.py:669
msgid "The download has started..."
-msgstr ""
+msgstr "Rozpoczęto trnasmisję..."
#: ../scripts/totalopenstation-gui.py:671
msgid ""
"The download has finished.\n"
"Press OK to proceed"
-msgstr ""
+msgstr "Transmisja zakończona pomyślnie.\nNaciśnij OK aby kontynuować"
#: ../scripts/totalopenstation-gui.py:712
msgid "No output file specified"
-msgstr ""
+msgstr "Nie wybrano pliku wyjściowego"
#: ../scripts/totalopenstation-gui.py:713
msgid "No processing settings entered!\n"
-msgstr ""
+msgstr "Nie wybrano ustawień!\n"
diff --git a/po/totalopenstation.pot b/locale/tr/LC_MESSAGES/messages.po
similarity index 92%
rename from po/totalopenstation.pot
rename to locale/tr/LC_MESSAGES/messages.po
index 87da2fe..0290774 100644
--- a/po/totalopenstation.pot
+++ b/locale/tr/LC_MESSAGES/messages.po
@@ -1,20 +1,22 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
+#
+# Translators:
+# Stefano Costa <steko at iosa.it>, 2011
msgid ""
msgstr ""
-"Project-Id-Version: Total Open Station 0.2\n"
-"Report-Msgid-Bugs-To: \n"
+"Project-Id-Version: Total Open Station\n"
+"Report-Msgid-Bugs-To: http://bitbucket.org/steko/totalopenstation/issues/\n"
"POT-Creation-Date: 2010-02-08 16:07+0100\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"PO-Revision-Date: 2011-03-22 15:12+0000\n"
+"Last-Translator: Stefano Costa <steko at iosa.it>\n"
"Language-Team: LANGUAGE <LL at li.org>\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: tr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: ../scripts/totalopenstation-cli-parser.py:31
msgid "usage: %prog [option] arg1 [option] arg2 ..."
@@ -132,7 +134,7 @@ msgstr ""
#: ../scripts/totalopenstation-gui.py:245
msgid "Error"
-msgstr ""
+msgstr "Hata"
#: ../scripts/totalopenstation-gui.py:246
msgid "Connection failed with the following error message:\n"
diff --git a/sample_data/Leica1200.rw5 b/sample_data/Leica1200.rw5
new file mode 100644
index 0000000..9c071b4
--- /dev/null
+++ b/sample_data/Leica1200.rw5
@@ -0,0 +1,32 @@
+-- TPS1200 RW5 format file
+-- Version 1.35 July 20 2004 Leica Geosystems
+JB,NMMY RW5 JOB,DT07-22-2004,TM13:13:51
+MO,AD0,UN0 SF1.00000000,EC1,EO0.0,AUO
+--SP,PN111,N 16556174.237,E 942130.662,EL 16.404
+--SP,PN108,N 16556174.237,E 942130.662,EL 17.945
+OC,OP111,N 16556174.237,E 942130.662,EL 16.404
+BK,OP111,BP108,BS0.00000,BC0.00000
+LS,HI5.684,HR5.500
+SS,OP111,FP108,AR0.00000,ZE0.00017,SD3.3566,--FENCE1
+LS,HI3.684,HR5.500
+SS,OP111,FP101,AR55.05521,ZE0.00014,SD3.3566,--LIGHT POLE
+--BEG
+LS,HI3.684,HR5.500
+SS,OP111,FP102,AR55.05517,ZE0.00010,SD3.3566,--FENCE1
+LS,HI3.684,HR5.500
+SS,OP111,FP103,AR55.05513,ZE0.00017,SD3.3566,--FENCE
+LS,HI3.684,HR5.500
+SS,OP111,FP104,AR55.05513,ZE0.00017,SD3.3566,--FENCE
+--BEG
+LS,HI3.684,HR5.500
+SS,OP111,FP105,AR55.05521,ZE0.00014,SD3.3566,--EP1
+LS,HI3.684,HR5.500
+SS,OP111,FP106,AR55.05513,ZE0.00017,SD3.3566,--EP
+LS,HI3.684,HR5.500
+SS,OP111,FP107,AR55.05521,ZE0.00014,SD3.3566,--EP
+--END
+LS,HI3.684,HR5.500
+SS,OP111,FP108,AR55.05521,ZE0.00014,SD3.3566,--FENCE1
+LS,HI3.684,HR5.500
+SS,OP111,FP109,AR55.05513,ZE0.00017,SD3.3566,--FENCE
+--JFS
\ No newline at end of file
diff --git a/sample_data/Leica1200.rw5.csv b/sample_data/Leica1200.rw5.csv
new file mode 100644
index 0000000..6074485
--- /dev/null
+++ b/sample_data/Leica1200.rw5.csv
@@ -0,0 +1,11 @@
+Rec_Desc Rec_Type Point ID Description Inst_Height_ Rod Height Horiz_ Angle Vert_ Angle Slope Dist Local_N Local_E Local_Z PC EDM Mode SF
+Side Shot SS 108 FENCE1 5500 0 0.000525 3.3566 16556174237 942130662 16404
+Side Shot SS 101 LIGHT POLE 5500 61.219784 0.000432 3.3566
+Side Shot SS 102 FENCE1 5500 61.21966 0.000309 3.3566
+Side Shot SS 103 FENCE 5500 61.219537 0.000525 3.3566
+Side Shot SS 104 FENCE 5500 61.219537 0.000525 3.3566
+Side Shot SS 105 EP1 5500 61.219784 0.000432 3.3566
+Side Shot SS 106 EP 5500 61.219537 0.000525 3.3566
+Side Shot SS 107 EP 5500 61.219784 0.000432 3.3566
+Side Shot SS 108 FENCE1 5500 61.219784 0.000432 3.3566
+Side Shot SS 109 FENCE 5500 61.219537 0.000525 3.3566
diff --git a/sample_data/leica_gsi/leica_gsi16_gurob.gsi b/sample_data/leica_gsi/leica_gsi16_gurob.gsi
new file mode 100644
index 0000000..946296f
--- /dev/null
+++ b/sample_data/leica_gsi/leica_gsi16_gurob.gsi
@@ -0,0 +1,344 @@
+*110002+00000000GDEM5415 21.024+0000000003545100 22.024+0000000009117510 31...0+0000000000013825 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110003+00000000GDEM5416 21.024+0000000003411240 22.024+0000000009248200 31...0+0000000000020527 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110004+00000000GDEM5417 21.024+0000000003349200 22.024+0000000009338510 31...0+0000000000028609 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110005+00000000GDEM5418 21.024+0000000003231250 22.024+0000000009247570 31...0+0000000000035487 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110006+00000000GDEM5419 21.024+0000000003225480 22.024+0000000009145240 31...0+0000000000042459 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110007+00000000GDEM5420 21.024+0000000003244000 22.024+0000000009102210 31...0+0000000000049880 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110008+00000000GDEM5421 21.024+0000000003240260 22.024+0000000009050110 31...0+0000000000056728 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110009+00000000GDEM5422 21.024+0000000003246280 22.024+0000000009043250 31...0+0000000000063095 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110010+00000000GDEM5423 21.024+0000000003226150 22.024+0000000009046130 31...0+0000000000070866 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110011+00000000GDEM5424 21.024+0000000003226450 22.024+0000000009047310 31...0+0000000000078201 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110012+00000000GDEM5425 21.024+0000000003226050 22.024+0000000009042380 31...0+0000000000085351 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110013+00000000GDEM5426 21.024+0000000003225380 22.024+0000000009044140 31...0+0000000000091842 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110014+00000000GDEM5427 21.024+0000000003230120 22.024+0000000009042510 31...0+0000000000098845 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110015+00000000GDEM5428 21.024+0000000003233480 22.024+0000000009037580 31...0+0000000000106230 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110016+00000000GDEM5429 21.024+0000000003236310 22.024+0000000009050560 31...0+0000000000111912 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110017+00000000GDEM5430 21.024+0000000003241510 22.024+0000000009054040 31...0+0000000000117913 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110018+00000000GDEM5431 21.024+0000000003239180 22.024+0000000009045120 31...0+0000000000125024 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110019+00000000GDEM5432 21.024+0000000003237560 22.024+0000000009057200 31...0+0000000000131865 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110020+00000000GDEM5433 21.024+0000000003232270 22.024+0000000009038240 31...0+0000000000138192 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110021+00000000GDEM5434 21.024+0000000003230160 22.024+0000000009035030 31...0+0000000000144301 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110022+00000000GDEM5435 21.024+0000000003232480 22.024+0000000009038470 31...0+0000000000150126 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110023+00000000GDEM5436 21.024+0000000003234150 22.024+0000000009042260 31...0+0000000000153311 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110024+00000000GDEM5437 21.024+0000000003459220 22.024+0000000009046550 31...0+0000000000154795 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110025+00000000GDEM5438 21.024+0000000003510230 22.024+0000000009043170 31...0+0000000000148108 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110026+00000000GDEM5439 21.024+0000000003518340 22.024+0000000009043240 31...0+0000000000141694 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110027+00000000GDEM5440 21.024+0000000003533270 22.024+0000000009101020 31...0+0000000000135391 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110028+00000000GDEM5441 21.024+0000000003548030 22.024+0000000009059450 31...0+0000000000128130 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110029+00000000GDEM5442 21.024+0000000003603000 22.024+0000000009103160 31...0+0000000000122116 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110030+00000000GDEM5443 21.024+0000000003617080 22.024+0000000009057200 31...0+0000000000115394 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110031+00000000GDEM5444 21.024+0000000003631540 22.024+0000000009103110 31...0+0000000000108438 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110032+00000000GDEM5445 21.024+0000000003648180 22.024+0000000009100170 31...0+0000000000102326 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110033+00000000GDEM5446 21.024+0000000003655430 22.024+0000000009053010 31...0+0000000000097167 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110034+00000000GDEM5447 21.024+0000000003710250 22.024+0000000009057470 31...0+0000000000090574 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110035+00000000GDEM5448 21.024+0000000003733580 22.024+0000000009104340 31...0+0000000000083918 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110036+00000000GDEM5449 21.024+0000000003807260 22.024+0000000009124380 31...0+0000000000078110 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110037+00000000GDEM5450 21.024+0000000003831470 22.024+0000000009123310 31...0+0000000000072919 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110038+00000000GDEM5451 21.024+0000000003919330 22.024+0000000009122580 31...0+0000000000067395 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110039+00000000GDEM5452 21.024+0000000004005300 22.024+0000000009152140 31...0+0000000000060961 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110040+00000000GDEM5453 21.024+0000000004054200 22.024+0000000009135390 31...0+0000000000054997 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110041+00000000GDEM5454 21.024+0000000004151140 22.024+0000000009142240 31...0+0000000000049119 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110042+00000000GDEM5455 21.024+0000000004316560 22.024+0000000009236020 31...0+0000000000043087 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110043+00000000GDEM5456 21.024+0000000004454520 22.024+0000000009333170 31...0+0000000000036839 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110044+00000000GDEM5457 21.024+0000000004726060 22.024+0000000009424180 31...0+0000000000030586 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110045+00000000GDEM5458 21.024+0000000005254090 22.024+0000000009324370 31...0+0000000000021343 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110046+00000000GDEM5459 21.024+0000000005850430 22.024+0000000009243500 31...0+0000000000016429 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110047+00000000GDEM5460 21.024+0000000007356300 22.024+0000000009340370 31...0+0000000000010210 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110048+00000000GDEM5461 21.024+0000000010921470 22.024+0000000009546500 31...0+0000000000006337 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110049+00000000GDEM5462 21.024+0000000011908360 22.024+0000000009524460 31...0+0000000000012827 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110050+00000000GDEM5463 21.024+0000000009208400 22.024+0000000009349190 31...0+0000000000014489 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110051+00000000GDEM5464 21.024+0000000007341000 22.024+0000000009409300 31...0+0000000000018464 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110052+00000000GDEM5465 21.024+0000000006316060 22.024+0000000009417250 31...0+0000000000023660 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110053+00000000GDEM5466 21.024+0000000005603050 22.024+0000000009455150 31...0+0000000000029811 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110054+00000000GDEM5467 21.024+0000000005215570 22.024+0000000009418030 31...0+0000000000035217 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110055+00000000GDEM5468 21.024+0000000004857250 22.024+0000000009254230 31...0+0000000000042143 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110056+00000000GDEM5469 21.024+0000000004643470 22.024+0000000009204020 31...0+0000000000048291 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110057+00000000GDEM5470 21.024+0000000004403030 22.024+0000000009146140 31...0+0000000000055590 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110058+00000000GDEM5471 21.024+0000000004231010 22.024+0000000009156030 31...0+0000000000063496 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110059+00000000GDEM5472 21.024+0000000004133390 22.024+0000000009131090 31...0+0000000000071749 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110060+00000000GDEM5473 21.024+0000000004106440 22.024+0000000009127120 31...0+0000000000079606 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110061+00000000GDEM5474 21.024+0000000004029420 22.024+0000000009114160 31...0+0000000000087154 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110062+00000000GDEM5475 21.024+0000000003951270 22.024+0000000009105210 31...0+0000000000094336 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110063+00000000GDEM5476 21.024+0000000003920500 22.024+0000000009114010 31...0+0000000000101918 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110064+00000000GDEM5477 21.024+0000000003854160 22.024+0000000009108580 31...0+0000000000110011 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110065+00000000GDEM5478 21.024+0000000003824400 22.024+0000000009111440 31...0+0000000000117775 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110066+00000000GDEM5479 21.024+0000000003803550 22.024+0000000009103140 31...0+0000000000124753 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110067+00000000GDEM5480 21.024+0000000003741040 22.024+0000000009101400 31...0+0000000000132434 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110068+00000000GDEM5481 21.024+0000000003727210 22.024+0000000009059280 31...0+0000000000139744 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110069+00000000GDEM5482 21.024+0000000003718500 22.024+0000000009048390 31...0+0000000000147089 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110070+00000000GDEM5483 21.024+0000000003709490 22.024+0000000009054290 31...0+0000000000155483 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110071+00000000GDEM5484 21.024+0000000003912410 22.024+0000000009106220 31...0+0000000000157432 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110072+00000000GDEM5485 21.024+0000000003918560 22.024+0000000009056230 31...0+0000000000152866 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110073+00000000GDEM5486 21.024+0000000003950320 22.024+0000000009100330 31...0+0000000000145540 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110074+00000000GDEM5487 21.024+0000000004024460 22.024+0000000009106160 31...0+0000000000138373 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110075+00000000GDEM5488 21.024+0000000004057230 22.024+0000000009114420 31...0+0000000000131145 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110076+00000000GDEM5489 21.024+0000000004120260 22.024+0000000009119240 31...0+0000000000125336 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110077+00000000GDEM5490 21.024+0000000004156520 22.024+0000000009131310 31...0+0000000000119043 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110078+00000000GDEM5491 21.024+0000000004237330 22.024+0000000009119500 31...0+0000000000112479 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110079+00000000GDEM5492 21.024+0000000004328270 22.024+0000000009119020 31...0+0000000000105008 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110080+00000000GDEM5493 21.024+0000000004415010 22.024+0000000009104560 31...0+0000000000097772 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110081+00000000GDEM5494 21.024+0000000004520120 22.024+0000000009125050 31...0+0000000000092533 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110082+00000000GDEM5495 21.024+0000000004617210 22.024+0000000009124130 31...0+0000000000086694 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110083+00000000GDEM5496 21.024+0000000004717240 22.024+0000000009203050 31...0+0000000000081584 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110084+00000000GDEM5497 21.024+0000000004857370 22.024+0000000009226380 31...0+0000000000074896 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110085+00000000GDEM5498 21.024+0000000005047580 22.024+0000000009229580 31...0+0000000000068496 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110086+00000000GDEM5499 21.024+0000000005228390 22.024+0000000009231320 31...0+0000000000062792 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110087+00000000GDEM5500 21.024+0000000005409030 22.024+0000000009155580 31...0+0000000000057944 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110088+00000000GDEM5501 21.024+0000000005624310 22.024+0000000009222470 31...0+0000000000051745 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110089+00000000GDEM5502 21.024+0000000005939380 22.024+0000000009303120 31...0+0000000000045723 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110090+00000000GDEM5503 21.024+0000000006324060 22.024+0000000009353550 31...0+0000000000040336 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110091+00000000GDEM5504 21.024+0000000006952370 22.024+0000000009452270 31...0+0000000000033821 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110092+00000000GDEM5505 21.024+0000000007617520 22.024+0000000009441160 31...0+0000000000029028 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110093+00000000GDEM5506 21.024+0000000008452370 22.024+0000000009440020 31...0+0000000000024524 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110094+00000000GDEM5507 21.024+0000000009730150 22.024+0000000009532170 31...0+0000000000021877 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110095+00000000GDEM5508 21.024+0000000011124160 22.024+0000000009457390 31...0+0000000000019701 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110096+00000000GDEM5509 21.024+0000000011211220 22.024+0000000009544490 31...0+0000000000025032 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110097+00000000GDEM5510 21.024+0000000009823420 22.024+0000000009524120 31...0+0000000000026732 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110098+00000000GDEM5511 21.024+0000000008622310 22.024+0000000009453020 31...0+0000000000029955 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110099+00000000GDEM5512 21.024+0000000007726130 22.024+0000000009508000 31...0+0000000000033983 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110100+00000000GDEM5513 21.024+0000000007037570 22.024+0000000009443360 31...0+0000000000038853 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110101+00000000GDEM5514 21.024+0000000006552060 22.024+0000000009333040 31...0+0000000000043375 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110102+00000000GDEM5515 21.024+0000000006121370 22.024+0000000009257030 31...0+0000000000049281 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110103+00000000GDEM5516 21.024+0000000005812300 22.024+0000000009210340 31...0+0000000000054792 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110104+00000000GDEM5517 21.024+0000000005529260 22.024+0000000009155530 31...0+0000000000060101 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110105+00000000GDEM5518 21.024+0000000005301580 22.024+0000000009220380 31...0+0000000000066205 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110106+00000000GDEM5519 21.024+0000000005048040 22.024+0000000009225130 31...0+0000000000072712 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110107+00000000GDEM5520 21.024+0000000004937100 22.024+0000000009225080 31...0+0000000000078355 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110108+00000000GDEM5521 21.024+0000000004842390 22.024+0000000009157390 31...0+0000000000083621 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110109+00000000GDEM5522 21.024+0000000004738190 22.024+0000000009124580 31...0+0000000000088793 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110110+00000000GDEM5523 21.024+0000000004629040 22.024+0000000009135590 31...0+0000000000095478 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110111+00000000GDEM5524 21.024+0000000004549520 22.024+0000000009119530 31...0+0000000000100715 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110112+00000000GDEM5525 21.024+0000000004507070 22.024+0000000009120580 31...0+0000000000106933 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110113+00000000GDEM5526 21.024+0000000004416360 22.024+0000000009122320 31...0+0000000000113619 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110114+00000000GDEM5527 21.024+0000000004327380 22.024+0000000009134460 31...0+0000000000120698 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110115+00000000GDEM5528 21.024+0000000004252030 22.024+0000000009132560 31...0+0000000000127623 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110116+00000000GDEM5529 21.024+0000000004224260 22.024+0000000009122070 31...0+0000000000133298 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110117+00000000GDEM5530 21.024+0000000004203540 22.024+0000000009119300 31...0+0000000000139162 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110118+00000000GDEM5531 21.024+0000000004145160 22.024+0000000009118210 31...0+0000000000145579 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110119+00000000GDEM5532 21.024+0000000004133140 22.024+0000000009108050 31...0+0000000000151847 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110120+00000000GDEM5533 21.024+0000000004116390 22.024+0000000009104540 31...0+0000000000158690 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110098+00000000GDEM5511 21.024+0000000008622310 22.024+0000000009453020 31...0+0000000000029955 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110099+00000000GDEM5512 21.024+0000000007726130 22.024+0000000009508000 31...0+0000000000033983 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110100+00000000GDEM5513 21.024+0000000007037570 22.024+0000000009443360 31...0+0000000000038853 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110101+00000000GDEM5514 21.024+0000000006552060 22.024+0000000009333040 31...0+0000000000043375 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110102+00000000GDEM5515 21.024+0000000006121370 22.024+0000000009257030 31...0+0000000000049281 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110103+00000000GDEM5516 21.024+0000000005812300 22.024+0000000009210340 31...0+0000000000054792 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110104+00000000GDEM5517 21.024+0000000005529260 22.024+0000000009155530 31...0+0000000000060101 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110105+00000000GDEM5518 21.024+0000000005301580 22.024+0000000009220380 31...0+0000000000066205 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110106+00000000GDEM5519 21.024+0000000005048040 22.024+0000000009225130 31...0+0000000000072712 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110107+00000000GDEM5520 21.024+0000000004937100 22.024+0000000009225080 31...0+0000000000078355 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110108+00000000GDEM5521 21.024+0000000004842390 22.024+0000000009157390 31...0+0000000000083621 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110109+00000000GDEM5522 21.024+0000000004738190 22.024+0000000009124580 31...0+0000000000088793 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110110+00000000GDEM5523 21.024+0000000004629040 22.024+0000000009135590 31...0+0000000000095478 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110111+00000000GDEM5524 21.024+0000000004549520 22.024+0000000009119530 31...0+0000000000100715 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110112+00000000GDEM5525 21.024+0000000004507070 22.024+0000000009120580 31...0+0000000000106933 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110113+00000000GDEM5526 21.024+0000000004416360 22.024+0000000009122320 31...0+0000000000113619 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110114+00000000GDEM5527 21.024+0000000004327380 22.024+0000000009134460 31...0+0000000000120698 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110115+00000000GDEM5528 21.024+0000000004252030 22.024+0000000009132560 31...0+0000000000127623 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110116+00000000GDEM5529 21.024+0000000004224260 22.024+0000000009122070 31...0+0000000000133298 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110117+00000000GDEM5530 21.024+0000000004203540 22.024+0000000009119300 31...0+0000000000139162 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110118+00000000GDEM5531 21.024+0000000004145160 22.024+0000000009118210 31...0+0000000000145579 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110119+00000000GDEM5532 21.024+0000000004133140 22.024+0000000009108050 31...0+0000000000151847 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110120+00000000GDEM5533 21.024+0000000004116390 22.024+0000000009104540 31...0+0000000000158690 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110121+00000000GDEM5534 21.024+0000000004316120 22.024+0000000009106360 31...0+0000000000160807 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110122+00000000GDEM5535 21.024+0000000004333560 22.024+0000000009111020 31...0+0000000000154541 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110123+00000000GDEM5536 21.024+0000000004348310 22.024+0000000009125430 31...0+0000000000148046 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110124+00000000GDEM5537 21.024+0000000004409300 22.024+0000000009128360 31...0+0000000000141416 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110125+00000000GDEM5538 21.024+0000000004429440 22.024+0000000009129410 31...0+0000000000135213 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110126+00000000GDEM5539 21.024+0000000004455190 22.024+0000000009148480 31...0+0000000000129100 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110127+00000000GDEM5540 21.024+0000000004524350 22.024+0000000009151470 31...0+0000000000123442 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110128+00000000GDEM5541 21.024+0000000004547330 22.024+0000000009135550 31...0+0000000000118169 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110129+00000000GDEM5542 21.024+0000000004641570 22.024+0000000009126140 31...0+0000000000111882 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110130+00000000GDEM5543 21.024+0000000004722490 22.024+0000000009130500 31...0+0000000000105529 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110131+00000000GDEM5544 21.024+0000000004812480 22.024+0000000009119200 31...0+0000000000100584 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110132+00000000GDEM5545 21.024+0000000004937060 22.024+0000000009119310 31...0+0000000000095027 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110133+00000000GDEM5546 21.024+0000000005037150 22.024+0000000009132530 31...0+0000000000089968 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110134+00000000GDEM5547 21.024+0000000005129370 22.024+0000000009131410 31...0+0000000000084231 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110135+00000000GDEM5548 21.024+0000000005241000 22.024+0000000009223140 31...0+0000000000080119 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110136+00000000GDEM5549 21.024+0000000005435350 22.024+0000000009244330 31...0+0000000000074704 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110137+00000000GDEM5550 21.024+0000000005640080 22.024+0000000009224440 31...0+0000000000069808 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110138+00000000GDEM5551 21.024+0000000005858070 22.024+0000000009208240 31...0+0000000000064417 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110139+00000000GDEM5552 21.024+0000000006139490 22.024+0000000009217430 31...0+0000000000059185 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110140+00000000GDEM5553 21.024+0000000006523100 22.024+0000000009227110 31...0+0000000000053031 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110141+00000000GDEM5554 21.024+0000000006954560 22.024+0000000009312530 31...0+0000000000047765 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110142+00000000GDEM5555 21.024+0000000007510330 22.024+0000000009436540 31...0+0000000000043008 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110143+00000000GDEM5556 21.024+0000000008053400 22.024+0000000009529200 31...0+0000000000039042 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110144+00000000GDEM5557 21.024+0000000008914090 22.024+0000000009620500 31...0+0000000000035368 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110145+00000000GDEM5558 21.024+0000000009749530 22.024+0000000009633080 31...0+0000000000032655 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110146+00000000GDEM5559 21.024+0000000010756430 22.024+0000000009648520 31...0+0000000000030659 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110147+00000000GDEM5560 21.024+0000000011445040 22.024+0000000009709480 31...0+0000000000033605 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110148+00000000GDEM5561 21.024+0000000010629230 22.024+0000000009535080 31...0+0000000000034399 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110149+00000000GDEM5562 21.024+0000000009759100 22.024+0000000009537310 31...0+0000000000036292 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110150+00000000GDEM5563 21.024+0000000009000500 22.024+0000000009444000 31...0+0000000000039677 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110151+00000000GDEM5564 21.024+0000000008345000 22.024+0000000009335280 31...0+0000000000043413 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110152+00000000GDEM5565 21.024+0000000007844340 22.024+0000000009413470 31...0+0000000000047213 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110153+00000000GDEM5566 21.024+0000000007429370 22.024+0000000009258390 31...0+0000000000051614 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110154+00000000GDEM5567 21.024+0000000007130430 22.024+0000000009148250 31...0+0000000000054245 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110155+00000000GDEM5568 21.024+0000000006754040 22.024+0000000009149400 31...0+0000000000059449 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110156+00000000GDEM5569 21.024+0000000006522310 22.024+0000000009222280 31...0+0000000000063708 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110157+00000000GDEM5570 21.024+0000000006315590 22.024+0000000009200400 31...0+0000000000068142 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110158+00000000GDEM5571 21.024+0000000006028370 22.024+0000000009218290 31...0+0000000000074735 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110159+00000000GDEM5572 21.024+0000000005758130 22.024+0000000009236440 31...0+0000000000081611 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110160+00000000GDEM5573 21.024+0000000005550510 22.024+0000000009141190 31...0+0000000000090233 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110161+00000000GDEM5574 21.024+0000000005444040 22.024+0000000009112550 31...0+0000000000094763 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110162+00000000GDEM5575 21.024+0000000005302130 22.024+0000000009123540 31...0+0000000000101806 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110163+00000000GDEM5576 21.024+0000000005205100 22.024+0000000009155140 31...0+0000000000107078 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110164+00000000GDEM5577 21.024+0000000005049510 22.024+0000000009145280 31...0+0000000000114104 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110165+00000000GDEM5578 21.024+0000000004941540 22.024+0000000009151090 31...0+0000000000120263 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110166+00000000GDEM5579 21.024+0000000004839140 22.024+0000000009147050 31...0+0000000000127501 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110167+00000000GDEM5580 21.024+0000000004801310 22.024+0000000009135220 31...0+0000000000133079 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110168+00000000GDEM5581 21.024+0000000004718000 22.024+0000000009133040 31...0+0000000000139349 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110169+00000000GDEM5582 21.024+0000000004637320 22.024+0000000009122180 31...0+0000000000145856 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110170+00000000GDEM5583 21.024+0000000004604340 22.024+0000000009109120 31...0+0000000000151454 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110171+00000000GDEM5584 21.024+0000000004534590 22.024+0000000009102550 31...0+0000000000157733 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110172+00000000GDEM5585 21.024+0000000004515460 22.024+0000000009049480 31...0+0000000000161473 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110173+00000000GDEM5586 21.024+0000000004636060 22.024+0000000009115140 31...0+0000000000163316 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110174+00000000GDEM5587 21.024+0000000004705590 22.024+0000000009104500 31...0+0000000000158425 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110175+00000000GDEM5588 21.024+0000000004738310 22.024+0000000009117010 31...0+0000000000153535 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110176+00000000GDEM5589 21.024+0000000004759350 22.024+0000000009110470 31...0+0000000000148989 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110177+00000000GDEM5590 21.024+0000000004813260 22.024+0000000009127070 31...0+0000000000144457 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110178+00000000GDEM5591 21.024+0000000004914220 22.024+0000000009136370 31...0+0000000000139542 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110179+00000000GDEM5592 21.024+0000000004956400 22.024+0000000009145030 31...0+0000000000134525 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110180+00000000GDEM5593 21.024+0000000005054530 22.024+0000000009149280 31...0+0000000000127899 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110181+00000000GDEM5594 21.024+0000000005220070 22.024+0000000009154580 31...0+0000000000120682 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110182+00000000GDEM5595 21.024+0000000005318550 22.024+0000000009205410 31...0+0000000000114118 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110183+00000000GDEM5596 21.024+0000000005402400 22.024+0000000009211070 31...0+0000000000108656 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110184+00000000GDEM5597 21.024+0000000005524550 22.024+0000000009202020 31...0+0000000000103190 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110185+00000000GDEM5598 21.024+0000000005645120 22.024+0000000009148500 31...0+0000000000098181 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110186+00000000GDEM5599 21.024+0000000005758370 22.024+0000000009141580 31...0+0000000000093672 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110187+00000000GDEM5600 21.024+0000000005925280 22.024+0000000009200520 31...0+0000000000089306 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110188+00000000GDEM5601 21.024+0000000006103100 22.024+0000000009249580 31...0+0000000000084745 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110189+00000000GDEM5602 21.024+0000000006330380 22.024+0000000009253570 31...0+0000000000079325 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110190+00000000GDEM5603 21.024+0000000006553490 22.024+0000000009256240 31...0+0000000000074364 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110191+00000000GDEM5604 21.024+0000000006852560 22.024+0000000009300540 31...0+0000000000068985 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110192+00000000GDEM5605 21.024+0000000007132550 22.024+0000000009326240 31...0+0000000000065641 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110193+00000000GDEM5606 21.024+0000000007407290 22.024+0000000009333420 31...0+0000000000062071 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110194+00000000GDEM5607 21.024+0000000007745070 22.024+0000000009409000 31...0+0000000000057914 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110195+00000000GDEM5608 21.024+0000000008208310 22.024+0000000009509310 31...0+0000000000053863 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110196+00000000GDEM5609 21.024+0000000008700250 22.024+0000000009511320 31...0+0000000000050162 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110197+00000000GDEM5610 21.024+0000000009039050 22.024+0000000009428540 31...0+0000000000047699 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110198+00000000GDEM5611 21.024+0000000009736220 22.024+0000000009443150 31...0+0000000000044189 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110199+00000000GDEM5612 21.024+0000000010509030 22.024+0000000009528590 31...0+0000000000041892 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110200+00000000GDEM5613 21.024+0000000011329140 22.024+0000000009705530 31...0+0000000000039888 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110201+00000000GDEM5614 21.024+0000000011625520 22.024+0000000009624120 31...0+0000000000045390 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110202+00000000GDEM5615 21.024+0000000010819200 22.024+0000000009530260 31...0+0000000000046720 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110203+00000000GDEM5616 21.024+0000000010053050 22.024+0000000009453530 31...0+0000000000048824 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110204+00000000GDEM5617 21.024+0000000009424450 22.024+0000000009431180 31...0+0000000000051448 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110205+00000000GDEM5618 21.024+0000000008837130 22.024+0000000009536210 31...0+0000000000054577 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110206+00000000GDEM5619 21.024+0000000008326590 22.024+0000000009522340 31...0+0000000000058545 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110207+00000000GDEM5620 21.024+0000000007902480 22.024+0000000009442330 31...0+0000000000062837 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110208+00000000GDEM5621 21.024+0000000007527120 22.024+0000000009342300 31...0+0000000000066772 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110209+00000000GDEM5622 21.024+0000000007202520 22.024+0000000009325170 31...0+0000000000071463 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110210+00000000GDEM5623 21.024+0000000006902430 22.024+0000000009325180 31...0+0000000000076235 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110211+00000000GDEM5624 21.024+0000000006615220 22.024+0000000009319280 31...0+0000000000081457 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110212+00000000GDEM5625 21.024+0000000006348310 22.024+0000000009255390 31...0+0000000000087530 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110213+00000000GDEM5626 21.024+0000000006158270 22.024+0000000009225340 31...0+0000000000092807 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110214+00000000GDEM5627 21.024+0000000006002460 22.024+0000000009214110 31...0+0000000000098995 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110215+00000000GDEM5628 21.024+0000000005830110 22.024+0000000009207490 31...0+0000000000103957 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110216+00000000GDEM5629 21.024+0000000005649460 22.024+0000000009218420 31...0+0000000000110149 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110217+00000000GDEM5630 21.024+0000000005521180 22.024+0000000009203380 31...0+0000000000116129 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110218+00000000GDEM5631 21.024+0000000005409300 22.024+0000000009157240 31...0+0000000000121709 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110219+00000000GDEM5632 21.024+0000000005253390 22.024+0000000009151170 31...0+0000000000128058 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110220+00000000GDEM5633 21.024+0000000005148560 22.024+0000000009153260 31...0+0000000000134404 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110221+00000000GDEM5634 21.024+0000000005052200 22.024+0000000009148440 31...0+0000000000142369 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110222+00000000GDEM5635 21.024+0000000005012230 22.024+0000000009132220 31...0+0000000000148882 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110223+00000000GDEM5636 21.024+0000000004936470 22.024+0000000009129230 31...0+0000000000155096 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110224+00000000GDEM5637 21.024+0000000004904150 22.024+0000000009123080 31...0+0000000000160202 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110225+00000000GDEM5638 21.024+0000000004834340 22.024+0000000009124560 31...0+0000000000165380 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110226+00000000GDEM5639 21.024+0000000005010410 22.024+0000000009117260 31...0+0000000000166379 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110227+00000000GDEM5640 21.024+0000000005036580 22.024+0000000009125190 31...0+0000000000160404 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110228+00000000GDEM5641 21.024+0000000005118590 22.024+0000000009125550 31...0+0000000000153850 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110229+00000000GDEM5642 21.024+0000000005148500 22.024+0000000009112310 31...0+0000000000150220 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110230+00000000GDEM5643 21.024+0000000005234310 22.024+0000000009114440 31...0+0000000000145491 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110231+00000000GDEM5644 21.024+0000000005324130 22.024+0000000009123430 31...0+0000000000139924 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110232+00000000GDEM5645 21.024+0000000005354130 22.024+0000000009140150 31...0+0000000000134863 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110233+00000000GDEM5646 21.024+0000000005438080 22.024+0000000009141040 31...0+0000000000129657 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110234+00000000GDEM5647 21.024+0000000005537140 22.024+0000000009146310 31...0+0000000000124860 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110235+00000000GDEM5648 21.024+0000000005640380 22.024+0000000009202300 31...0+0000000000119190 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110236+00000000GDEM5649 21.024+0000000005823430 22.024+0000000009219160 31...0+0000000000113731 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110237+00000000GDEM5650 21.024+0000000006012190 22.024+0000000009224440 31...0+0000000000107870 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110238+00000000GDEM5651 21.024+0000000006149450 22.024+0000000009228010 31...0+0000000000102194 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110239+00000000GDEM5652 21.024+0000000006355290 22.024+0000000009238330 31...0+0000000000095886 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110240+00000000GDEM5653 21.024+0000000006608110 22.024+0000000009254500 31...0+0000000000089899 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110241+00000000GDEM5654 21.024+0000000006838420 22.024+0000000009318060 31...0+0000000000084368 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110242+00000000GDEM5655 21.024+0000000007200570 22.024+0000000009321480 31...0+0000000000079361 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110243+00000000GDEM5656 21.024+0000000007602460 22.024+0000000009347450 31...0+0000000000074370 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110244+00000000GDEM5657 21.024+0000000008021520 22.024+0000000009415490 31...0+0000000000069857 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110245+00000000GDEM5658 21.024+0000000008517020 22.024+0000000009441230 31...0+0000000000065835 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110246+00000000GDEM5659 21.024+0000000009012500 22.024+0000000009455490 31...0+0000000000062834 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110247+00000000GDEM5660 21.024+0000000009449490 22.024+0000000009437560 31...0+0000000000059910 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110248+00000000GDEM5661 21.024+0000000010008170 22.024+0000000009436280 31...0+0000000000056836 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110249+00000000GDEM5662 21.024+0000000010625080 22.024+0000000009506190 31...0+0000000000054241 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110250+00000000GDEM5663 21.024+0000000011257350 22.024+0000000009524470 31...0+0000000000052386 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324
+*110251+00000000GDEM5664 21.024+0000000011707220 22.024+0000000009555530 31...0+0000000000057377 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110252+00000000GDEM5665 21.024+0000000011041540 22.024+0000000009520160 31...0+0000000000058651 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110253+00000000GDEM5666 21.024+0000000010458420 22.024+0000000009504490 31...0+0000000000060448 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110254+00000000GDEM5667 21.024+0000000009915400 22.024+0000000009455190 31...0+0000000000062682 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110255+00000000GDEM5668 21.024+0000000009336510 22.024+0000000009502560 31...0+0000000000065692 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110256+00000000GDEM5669 21.024+0000000008918120 22.024+0000000009451550 31...0+0000000000068900 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110257+00000000GDEM5670 21.024+0000000008632360 22.024+0000000009402510 31...0+0000000000071756 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110258+00000000GDEM5671 21.024+0000000008341540 22.024+0000000009347250 31...0+0000000000074610 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110259+00000000GDEM5672 21.024+0000000008020230 22.024+0000000009340200 31...0+0000000000078934 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110260+00000000GDEM5673 21.024+0000000007718310 22.024+0000000009317310 31...0+0000000000082988 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110261+00000000GDEM5674 21.024+0000000007428400 22.024+0000000009307110 31...0+0000000000087617 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110262+00000000GDEM5675 21.024+0000000007153130 22.024+0000000009251340 31...0+0000000000092154 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110263+00000000GDEM5676 21.024+0000000006931130 22.024+0000000009241280 31...0+0000000000096756 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110264+00000000GDEM5677 21.024+0000000006733150 22.024+0000000009234370 31...0+0000000000101101 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110265+00000000GDEM5678 21.024+0000000006558130 22.024+0000000009232310 31...0+0000000000104728 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110266+00000000GDEM5679 21.024+0000000006355340 22.024+0000000009215590 31...0+0000000000110370 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110267+00000000GDEM5680 21.024+0000000006207320 22.024+0000000009208460 31...0+0000000000115852 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110268+00000000GDEM5681 21.024+0000000006056200 22.024+0000000009204510 31...0+0000000000119503 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110269+00000000GDEM5682 21.024+0000000005934120 22.024+0000000009154570 31...0+0000000000125078 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110270+00000000GDEM5683 21.024+0000000005809400 22.024+0000000009147560 31...0+0000000000129959 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110271+00000000GDEM5684 21.024+0000000005705500 22.024+0000000009143300 31...0+0000000000136300 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110272+00000000GDEM5685 21.024+0000000005610000 22.024+0000000009137210 31...0+0000000000142182 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110273+00000000GDEM5686 21.024+0000000005518200 22.024+0000000009132250 31...0+0000000000147244 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110274+00000000GDEM5687 21.024+0000000005433490 22.024+0000000009145370 31...0+0000000000152979 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110275+00000000GDEM5688 21.024+0000000005339000 22.024+0000000009146580 31...0+0000000000158991 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110276+00000000GDEM5689 21.024+0000000005250280 22.024+0000000009135330 31...0+0000000000164888 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110277+00000000GDEM5690 21.024+0000000005524550 22.024+0000000009133500 31...0+0000000000163939 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110278+00000000GDEM5691 21.024+0000000005623360 22.024+0000000009140070 31...0+0000000000157560 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110279+00000000GDEM5692 21.024+0000000005653010 22.024+0000000009140010 31...0+0000000000154123 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110280+00000000GDEM5693 21.024+0000000005803180 22.024+0000000009142590 31...0+0000000000150339 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110281+00000000GDEM5694 21.024+0000000005906130 22.024+0000000009149160 31...0+0000000000145360 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110282+00000000GDEM5695 21.024+0000000006026100 22.024+0000000009155490 31...0+0000000000139838 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110283+00000000GDEM5696 21.024+0000000006137550 22.024+0000000009201260 31...0+0000000000134833 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110284+00000000GDEM5697 21.024+0000000006324480 22.024+0000000009204180 31...0+0000000000129249 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110285+00000000GDEM5698 21.024+0000000006448510 22.024+0000000009216430 31...0+0000000000125048 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110286+00000000GDEM5699 21.024+0000000006520050 22.024+0000000009214080 31...0+0000000000120293 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110287+00000000GDEM5700 21.024+0000000006610450 22.024+0000000009211050 31...0+0000000000115208 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110288+00000000GDEM5701 21.024+0000000006751280 22.024+0000000009230490 31...0+0000000000110266 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110289+00000000GDEM5702 21.024+0000000006953160 22.024+0000000009240200 31...0+0000000000104791 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110290+00000000GDEM5703 21.024+0000000007200360 22.024+0000000009238240 31...0+0000000000100270 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110291+00000000GDEM5704 21.024+0000000007550100 22.024+0000000009256280 31...0+0000000000094747 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110292+00000000GDEM5705 21.024+0000000007836280 22.024+0000000009317370 31...0+0000000000089439 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110293+00000000GDEM5706 21.024+0000000008045450 22.024+0000000009324050 31...0+0000000000085164 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110294+00000000GDEM5707 21.024+0000000008412340 22.024+0000000009342200 31...0+0000000000081270 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110295+00000000GDEM5708 21.024+0000000008830280 22.024+0000000009356330 31...0+0000000000077452 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110296+00000000GDEM5709 21.024+0000000009304000 22.024+0000000009412460 31...0+0000000000073078 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110297+00000000GDEM5710 21.024+0000000009800370 22.024+0000000009421460 31...0+0000000000069518 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110298+00000000GDEM5711 21.024+0000000010139370 22.024+0000000009435300 31...0+0000000000067452 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110299+00000000GDEM5712 21.024+0000000010637070 22.024+0000000009441520 31...0+0000000000065821 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110300+00000000GDEM5713 21.024+0000000011142300 22.024+0000000009438080 31...0+0000000000063808 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110301+00000000GDEM5714 21.024+0000000011520070 22.024+0000000009546220 31...0+0000000000062986 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110302+00000000GDEM5715 21.024+0000000011706590 22.024+0000000009517590 31...0+0000000000068081 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110303+00000000GDEM5716 21.024+0000000011226540 22.024+0000000009433320 31...0+0000000000069145 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110304+00000000GDEM5717 21.024+0000000010704480 22.024+0000000009440120 31...0+0000000000070554 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110305+00000000GDEM5718 21.024+0000000010147480 22.024+0000000009421460 31...0+0000000000073511 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110306+00000000GDEM5719 21.024+0000000009704240 22.024+0000000009405530 31...0+0000000000076379 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110307+00000000GDEM5720 21.024+0000000009403330 22.024+0000000009404330 31...0+0000000000078771 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110308+00000000GDEM5721 21.024+0000000009041180 22.024+0000000009350240 31...0+0000000000081774 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110309+00000000GDEM5722 21.024+0000000008658110 22.024+0000000009335300 31...0+0000000000085533 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110310+00000000GDEM5723 21.024+0000000008313550 22.024+0000000009321010 31...0+0000000000089293 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110311+00000000GDEM5724 21.024+0000000008020110 22.024+0000000009311480 31...0+0000000000092724 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110312+00000000GDEM5725 21.024+0000000007724430 22.024+0000000009259310 31...0+0000000000096557 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110313+00000000GDEM5726 21.024+0000000007534400 22.024+0000000009248330 31...0+0000000000099972 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324
+*110409+00000000GDEM5822 21.024+0000000027756290 22.024+0000000009009510 31...0+0000000000380667 51....+000000000017+000 87...0+0000000000001500 88...0+0000000000001324
+*110410+00000000GDEM5823 21.024+0000000027653170 22.024+0000000009006540 31...0+0000000000379796 51....+000000000017+000 87...0+0000000000001500 88...0+0000000000001324
+*110411+00000000GDEM5824 21.024+0000000027552490 22.024+0000000009004350 31...0+0000000000377833 51....+000000000017+000 87...0+0000000000001500 88...0+0000000000001324
+*110412+00000000GDEM5825 21.024+0000000027451450 22.024+0000000009002330 31...0+0000000000376681 51....+000000000017+000 87...0+0000000000001500 88...0+0000000000001324
+*110413+00000000GDEM5826 21.024+0000000027350420 22.024+0000000009002130 31...0+0000000000375410 51....+000000000017+000 87...0+0000000000001500 88...0+0000000000001324
+*110414+00000000GDEM5827 21.024+0000000027248520 22.024+0000000009001350 31...0+0000000000375194 51....+000000000017+000 87...0+0000000000001500 88...0+0000000000001324
+*110415+00000000GDEM5828 21.024+0000000027149200 22.024+0000000009001130 31...0+0000000000375871 51....+000000000017+000 87...0+0000000000001500 88...0+0000000000001324
+*110416+00000000GDEM5829 21.024+0000000027056590 22.024+0000000009000430 31...0+0000000000375995 51....+000000000017+000 87...0+0000000000001500 88...0+0000000000001324
+
diff --git a/sample_data/leica_gsi/leica_gsi8_ertola.gsi b/sample_data/leica_gsi/leica_gsi8_ertola.gsi
new file mode 100644
index 0000000..bbe363c
--- /dev/null
+++ b/sample_data/leica_gsi/leica_gsi8_ertola.gsi
@@ -0,0 +1,699 @@
+110001+00000001 21.322+03496940 22.322+09364360 31..00+00030485 51..1.+0000+000 87..10+00001500 81..00+00515836 82..00+00525871 83..00+00003079 71....+00000001 32..10+00030333
+110002+00000002 21.322+02179330 22.322+09442590 31..00+00030596 51..1.+0000+000 87..10+00001500 81..00+00510231 82..00+00528710 83..00+00002716 71....+00000001 32..10+00030479
+110003+00000003 21.322+01386450 22.322+09390160 31..00+00032850 51..1.+0000+000 87..10+00001500 81..00+00507065 82..00+00531927 83..00+00003182 71....+00000001 32..10+00032700
+110004+00000004 21.322+00438870 22.322+09497400 31..00+00031858 51..1.+0000+000 87..10+00001500 81..00+00502188 82..00+00531683 83..00+00002553 71....+00000001 32..10+00031758
+110005+00000005 21.322+39544000 22.322+09616900 31..00+00030738 51..1.+0000+000 87..10+00001500 81..00+00497804 82..00+00530604 83..00+00001889 71....+00000001 32..10+00030683
+110006+00000006 21.322+36391690 22.322+09526600 31..00+00033861 51..1.+0000+000 87..10+00001800 81..00+00481869 82..00+00528487 83..00+00002256 71....+00000001 32..10+00033768
+110007+00000007 21.322+35615990 22.322+09406160 31..00+00040522 51..1.+0000+000 87..10+00001500 81..00+00474361 82..00+00531151 83..00+00003815 71....+00000001 32..10+00040346
+110008+00000008 21.322+34849160 22.322+09454670 31..00+00039742 51..1.+0000+000 87..10+00001500 81..00+00471346 82..00+00527327 83..00+00003440 71....+00000001 32..10+00039596
+110009+00000009 21.322+34309220 22.322+09449740 31..00+00041051 51..1.+0000+000 87..10+00001500 81..00+00468119 82..00+00525617 83..00+00003584 71....+00000001 32..10+00040898
+110010+00000010 21.322+33350500 22.322+09493760 31..00+00040770 51..1.+0000+000 87..10+00002150 81..00+00464859 82..00+00520415 83..00+00002629 71....+00000001 32..10+00040641
+110011+00000011 21.322+32541310 22.322+09660590 31..00+00040522 51..1.+0000+000 87..10+00001350 81..00+00462717 82..00+00515727 83..00+00002349 71....+00000001 32..10+00040464
+110012+00000012 21.322+31724390 22.322+09719820 31..00+00041547 51..1.+0000+000 87..10+00001480 81..00+00460007 82..00+00511106 83..00+00001888 71....+00000001 32..10+00041506
+110013+00000013 21.322+31160930 22.322+09798310 31..00+00045062 51..1.+0000+000 87..10+00001500 81..00+00455707 82..00+00508168 83..00+00001468 71....+00000001 32..10+00045040
+110014+00000014 21.322+30703600 22.322+09807870 31..00+00048653 51..1.+0000+000 87..10+00001500 81..00+00451666 82..00+00505364 83..00+00001508 71....+00000001 32..10+00048631
+110015+00000015 21.322+30293830 22.322+09813200 31..00+00052038 51..1.+0000+000 87..10+00001500 81..00+00448039 82..00+00502400 83..00+00001567 71....+00000001 32..10+00052016
+110016+00000016 21.322+29866850 22.322+09790610 31..00+00054781 51..1.+0000+000 87..10+00001500 81..00+00445260 82..00+00498855 83..00+00001842 71....+00000001 32..10+00054752
+110017+00000017 21.322+29638590 22.322+09708330 31..00+00060246 51..1.+0000+000 87..10+00001500 81..00+00439914 82..00+00496585 83..00+00002799 71....+00000001 32..10+00060183
+110018+00000018 21.322+29015170 22.322+09745760 31..00+00059016 51..1.+0000+000 87..10+00001500 81..00+00441735 82..00+00490914 83..00+00002396 71....+00000001 32..10+00058969
+110019+00000019 21.322+28501740 22.322+09765890 31..00+00060109 51..1.+0000+000 87..10+00001500 81..00+00441587 82..00+00485993 83..00+00002250 71....+00000001 32..10+00060069
+110020+00000020 21.322+28160260 22.322+09757860 31..00+00063258 51..1.+0000+000 87..10+00001500 81..00+00439409 82..00+00481986 83..00+00002446 71....+00000001 32..10+00063212
+110021+00000021 21.322+27758200 22.322+09746660 31..00+00066816 51..1.+0000+000 87..10+00001800 81..00+00437334 82..00+00476973 83..00+00002398 71....+00000001 32..10+00066763
+110022+00000022 21.322+27557570 22.322+09737640 31..00+00070852 51..1.+0000+000 87..10+00001800 81..00+00434354 82..00+00473502 83..00+00002659 71....+00000001 32..10+00070792
+110023+00000023 21.322+27498070 22.322+09744050 31..00+00075713 51..1.+0000+000 87..10+00001300 81..00+00430116 82..00+00471028 83..00+00003284 71....+00000001 32..10+00075652
+110024+00000024 21.322+27357080 22.322+09692520 31..00+00081201 51..1.+0000+000 87..10+00001300 81..00+00425783 82..00+00467288 83..00+00004161 71....+00000001 32..10+00081106
+110025+00000025 21.322+27083790 22.322+09688240 31..00+00084040 51..1.+0000+000 87..10+00001450 81..00+00424714 82..00+00462880 83..00+00004204 71....+00000001 32..10+00083939
+110026+00000026 21.322+27330920 22.322+09553460 31..00+00092443 51..1.+0000+000 87..10+00001950 81..00+00415771 82..00+00462461 83..00+00006069 71....+00000001 32..10+00092215
+110027+00000027 21.322+27329070 22.322+09528530 31..00+00098507 51..1.+0000+000 87..10+00001600 81..00+00410283 82..00+00459983 83..00+00007229 71....+00000001 32..10+00098237
+110028+00000028 21.322+27186610 22.322+09512520 31..00+00102971 51..1.+0000+000 87..10+00001700 81..00+00407194 82..00+00456090 83..00+00007718 71....+00000001 32..10+00102669
+110029+00000029 21.322+26762700 22.322+09482910 31..00+00116020 51..1.+0000+000 87..10+00001650 81..00+00398994 82..00+00443698 83..00+00009304 71....+00000001 32..10+00115638
+110030+00000030 21.322+26511550 22.322+09470350 31..00+00118445 51..1.+0000+000 87..10+00001650 81..00+00399246 82..00+00438509 83..00+00009734 71....+00000001 32..10+00118036
+110031+00000031 21.322+26564830 22.322+09449610 31..00+00129206 51..1.+0000+000 87..10+00001650 81..00+00389566 82..00+00433864 83..00+00011048 71....+00000001 32..10+00128723
+110032+00000032 21.322+26485940 22.322+09455640 31..00+00132819 51..1.+0000+000 87..10+00001650 81..00+00387320 82..00+00430607 83..00+00011235 71....+00000001 32..10+00132334
+110033+00000033 21.322+26311670 22.322+09479060 31..00+00130513 51..1.+0000+000 87..10+00001300 81..00+00391151 82..00+00428785 83..00+00010909 71....+00000001 32..10+00130076
+110034+00000034 21.322+26106560 22.322+09473530 31..00+00124253 51..1.+0000+000 87..10+00001700 81..00+00398617 82..00+00428903 83..00+00010105 71....+00000001 32..10+00123828
+110035+00000035 21.322+26305620 22.322+09482180 31..00+00117597 51..1.+0000+000 87..10+00001300 81..00+00401980 82..00+00435736 83..00+00009796 71....+00000001 32..10+00117209
+110036+00000036 21.322+26404130 22.322+09498070 31..00+00109502 51..1.+0000+000 87..10+00001300 81..00+00407794 82..00+00441568 83..00+00008865 71....+00000001 32..10+00109162
+110037+00000037 21.322+26232650 22.322+09537400 31..00+00104009 51..1.+0000+000 87..10+00001300 81..00+00413905 82..00+00442133 83..00+00007792 71....+00000001 32..10+00103735
+110038+00000038 21.322+26003250 22.322+09599850 31..00+00101927 51..1.+0000+000 87..10+00001300 81..00+00417671 82..00+00440249 83..00+00006643 71....+00000001 32..10+00101726
+110039+00000039 21.322+25781440 22.322+09666060 31..00+00100819 51..1.+0000+000 87..10+00001300 81..00+00420627 82..00+00438061 83..00+00005527 71....+00000001 32..10+00100680
+110040+00000040 21.322+25547980 22.322+09715120 31..00+00102542 51..1.+0000+000 87..10+00001300 81..00+00421606 82..00+00434060 83..00+00004828 71....+00000001 32..10+00102439
+110041+00000041 21.322+25465850 22.322+09709420 31..00+00104794 51..1.+0000+000 87..10+00001300 81..00+00420763 82..00+00431586 83..00+00005022 71....+00000001 32..10+00104685
+110042+00000042 21.322+25283660 22.322+09671570 31..00+00107433 51..1.+0000+000 87..10+00002000 81..00+00420831 82..00+00427589 83..00+00005081 71....+00000001 32..10+00107290
+110043+00000043 21.322+25107360 22.322+09678230 31..00+00110695 51..1.+0000+000 87..10+00002000 81..00+00420519 82..00+00423156 83..00+00005133 71....+00000001 32..10+00110554
+110044+00000044 21.322+25266440 22.322+09680810 31..00+00112557 51..1.+0000+000 87..10+00001360 81..00+00417254 82..00+00423906 83..00+00005822 71....+00000001 32..10+00112416
+110045+00000045 21.322+25266020 22.322+09689490 31..00+00119170 51..1.+0000+000 87..10+00001300 81..00+00412392 82..00+00419424 83..00+00006051 71....+00000001 32..10+00119028
+110046+00000046 21.322+25111450 22.322+09723800 31..00+00120142 51..1.+0000+000 87..10+00001300 81..00+00413654 82..00+00416625 83..00+00005452 71....+00000001 32..10+00120029
+110047+00000047 21.322+24967740 22.322+09746540 31..00+00119674 51..1.+0000+000 87..10+00001300 81..00+00415874 82..00+00415017 83..00+00005004 71....+00000001 32..10+00119579
+110048+00000048 21.322+24971040 22.322+09733670 31..00+00113354 51..1.+0000+000 87..10+00001300 81..00+00420282 82..00+00419554 83..00+00004982 71....+00000001 32..10+00113254
+110049+00000049 21.322+24922110 22.322+09742220 31..00+00109688 51..1.+0000+000 87..10+00001300 81..00+00423457 82..00+00421560 83..00+00004681 71....+00000001 32..10+00109598
+110050+00000050 21.322+24677710 22.322+09760020 31..00+00110513 51..1.+0000+000 87..10+00001300 81..00+00425963 82..00+00418060 83..00+00004406 71....+00000001 32..10+00110434
+110051+00000051 21.322+24439660 22.322+09766250 31..00+00111806 51..1.+0000+000 87..10+00001300 81..00+00428246 82..00+00414356 83..00+00004345 71....+00000001 32..10+00111730
+110052+00000052 21.322+24284740 22.322+09775980 31..00+00111640 51..1.+0000+000 87..10+00001300 81..00+00430450 82..00+00412760 83..00+00004169 71....+00000001 32..10+00111571
+110053+00000053 21.322+24027050 22.322+09793440 31..00+00112222 51..1.+0000+000 87..10+00001300 81..00+00433688 82..00+00409540 83..00+00003881 71....+00000001 32..10+00112162
+110054+00000054 21.322+23865220 22.322+09800170 31..00+00111337 51..1.+0000+000 87..10+00001300 81..00+00436511 82..00+00408607 83..00+00003735 71....+00000001 32..10+00111282
+110055+00000055 21.322+23856810 22.322+09783780 31..00+00116442 51..1.+0000+000 87..10+00002100 81..00+00433731 82..00+00404336 83..00+00003395 71....+00000001 32..10+00116375
+110056+00000056 21.322+23821530 22.322+09814050 31..00+00123166 51..1.+0000+000 87..10+00002150 81..00+00430456 82..00+00398410 83..00+00002988 71....+00000001 32..10+00123113
+110057+00000057 21.322+23707710 22.322+09842710 31..00+00128679 51..1.+0000+000 87..10+00002150 81..00+00429244 82..00+00392568 83..00+00002570 71....+00000001 32..10+00128639
+110058+00000058 21.322+23711000 22.322+09805030 31..00+00109818 51..1.+0000+000 87..10+00001300 81..00+00439577 82..00+00408360 83..00+00003604 71....+00000001 32..10+00109767
+110059+00000059 21.322+23493450 22.322+09817490 31..00+00107285 51..1.+0000+000 87..10+00001300 81..00+00444061 82..00+00408504 83..00+00003316 71....+00000001 32..10+00107241
+110060+00000060 21.322+23198680 22.322+09831360 31..00+00108693 51..1.+0000+000 87..10+00001300 81..00+00447675 82..00+00404774 83..00+00003120 71....+00000001 32..10+00108655
+110061+00000061 21.322+22987450 22.322+09848530 31..00+00111091 51..1.+0000+000 87..10+00001300 81..00+00449775 82..00+00400946 83..00+00002884 71....+00000001 32..10+00111060
+110062+00000062 21.322+22724040 22.322+09840510 31..00+00111446 51..1.+0000+000 87..10+00001300 81..00+00453770 82..00+00398634 83..00+00003032 71....+00000001 32..10+00111411
+110063+00000063 21.322+22533020 22.322+09849740 31..00+00112932 51..1.+0000+000 87..10+00001710 81..00+00456254 82..00+00395919 83..00+00002496 71....+00000001 32..10+00112900
+110064+00000064 21.322+22325960 22.322+09860980 31..00+00114875 51..1.+0000+000 87..10+00001710 81..00+00458967 82..00+00392733 83..00+00002339 71....+00000001 32..10+00114847
+110065+00000065 21.322+22098360 22.322+09875060 31..00+00116025 51..1.+0000+000 87..10+00001710 81..00+00462453 82..00+00390242 83..00+00002108 71....+00000001 32..10+00116003
+110066+00000066 21.322+21925640 22.322+09884010 31..00+00115314 51..1.+0000+000 87..10+00001710 81..00+00465655 82..00+00389939 83..00+00001932 71....+00000001 32..10+00115295
+110067+00000067 21.322+21727730 22.322+09891900 31..00+00115928 51..1.+0000+000 87..10+00001710 81..00+00468927 82..00+00388332 83..00+00001799 71....+00000001 32..10+00115911
+110068+00000068 21.322+21484930 22.322+09908410 31..00+00116438 51..1.+0000+000 87..10+00001710 81..00+00473089 82..00+00386727 83..00+00001506 71....+00000001 32..10+00116426
+110069+00000069 21.322+21318460 22.322+09926470 31..00+00118636 51..1.+0000+000 87..10+00001710 81..00+00475607 82..00+00383907 83..00+00001201 71....+00000001 32..10+00118628
+110070+00000070 21.322+21130120 22.322+09931020 31..00+00118866 51..1.+0000+000 87..10+00001710 81..00+00479011 82..00+00383009 83..00+00001119 71....+00000001 32..10+00118859
+110071+00000071 21.322+21018170 22.322+09929510 31..00+00118075 51..1.+0000+000 87..10+00001710 81..00+00481197 82..00+00383439 83..00+00001138 71....+00000001 32..10+00118068
+110072+00000072 21.322+20930390 22.322+09937400 31..00+00115217 51..1.+0000+000 87..10+00001500 81..00+00483222 82..00+00386017 83..00+00001174 71....+00000001 32..10+00115211
+110073+00000073 21.322+20919440 22.322+09922820 31..00+00109306 51..1.+0000+000 87..10+00001500 81..00+00484269 82..00+00391840 83..00+00001366 71....+00000001 32..10+00109298
+110074+00000074 21.322+20892570 22.322+09916000 31..00+00104646 51..1.+0000+000 87..10+00001500 81..00+00485377 82..00+00396390 83..00+00001422 71....+00000001 32..10+00104637
+110075+00000075 21.322+20892050 22.322+09906050 31..00+00099495 51..1.+0000+000 87..10+00001500 81..00+00486105 82..00+00401491 83..00+00001509 71....+00000001 32..10+00099484
+110076+00000076 21.322+20932150 22.322+09900550 31..00+00093938 51..1.+0000+000 87..10+00001500 81..00+00486296 82..00+00407079 83..00+00001508 71....+00000001 32..10+00093926
+110077+00000077 21.322+20902720 22.322+09900510 31..00+00089877 51..1.+0000+000 87..10+00001500 81..00+00487300 82..00+00411035 83..00+00001445 71....+00000001 32..10+00089867
+110078+00000078 21.322+20834120 22.322+09903190 31..00+00086234 51..1.+0000+000 87..10+00001500 81..00+00488735 82..00+00414515 83..00+00001352 71....+00000001 32..10+00086224
+110079+00000079 21.322+20922740 22.322+09925130 31..00+00081002 51..1.+0000+000 87..10+00001500 81..00+00488301 82..00+00419853 83..00+00000993 71....+00000001 32..10+00080996
+110080+00000080 21.322+20700720 22.322+09943820 31..00+00078389 51..1.+0000+000 87..10+00001500 81..00+00491390 82..00+00422088 83..00+00000732 71....+00000001 32..10+00078386
+110081+00000081 21.322+20418190 22.322+09924340 31..00+00080392 51..1.+0000+000 87..10+00001500 81..00+00494723 82..00+00419787 83..00+00000996 71....+00000001 32..10+00080387
+110082+00000082 21.322+20164200 22.322+09900420 31..00+00082193 51..1.+0000+000 87..10+00001500 81..00+00497881 82..00+00417844 83..00+00001326 71....+00000001 32..10+00082183
+110083+00000083 21.322+19847200 22.322+09915740 31..00+00080046 51..1.+0000+000 87..10+00001500 81..00+00501921 82..00+00419984 83..00+00001100 71....+00000001 32..10+00080039
+110084+00000084 21.322+19904100 22.322+09969390 31..00+00075165 51..1.+0000+000 87..10+00001500 81..00+00501132 82..00+00424844 83..00+00000402 71....+00000001 32..10+00075165
+110085+00000085 21.322+19800180 22.322+10046370 31..00+00070700 51..1.+0000+000 87..10+00001500 81..00+00502219 82..00+00429337 83..00-00000475 71....+00000001 32..10+00070698
+110086+00000086 21.322+19803360 22.322+10089720 31..00+00065750 51..1.+0000+000 87..10+00001500 81..00+00502030 82..00+00434288 83..00-00000886 71....+00000001 32..10+00065743
+110087+00000087 21.322+19686440 22.322+10101830 31..00+00061590 51..1.+0000+000 87..10+00001500 81..00+00503032 82..00+00438493 83..00-00000945 71....+00000001 32..10+00061582
+110088+00000088 21.322+19484440 22.322+10111180 31..00+00057328 51..1.+0000+000 87..10+00001500 81..00+00504637 82..00+00442868 83..00-00000961 71....+00000001 32..10+00057319
+110089+00000089 21.322+19118540 22.322+10130890 31..00+00054886 51..1.+0000+000 87..10+00001500 81..00+00507574 82..00+00445651 83..00-00001088 71....+00000001 32..10+00054874
+110090+00000090 21.322+18643650 22.322+10135840 31..00+00054485 51..1.+0000+000 87..10+00001500 81..00+00511518 82..00+00446759 83..00-00001122 71....+00000001 32..10+00054473
+110091+00000091 21.322+18156720 22.322+10134850 31..00+00052416 51..1.+0000+000 87..10+00001500 81..00+00514962 82..00+00449777 83..00-00001070 71....+00000001 32..10+00052404
+110092+00000092 21.322+17570050 22.322+10085810 31..00+00052895 51..1.+0000+000 87..10+00001500 81..00+00519701 82..00+00450916 83..00-00000673 71....+00000001 32..10+00052890
+110093+00000093 21.322+17907710 22.322+10053160 31..00+00058916 51..1.+0000+000 87..10+00001300 81..00+00519016 82..00+00444239 83..00-00000252 71....+00000001 32..10+00058914
+110094+00000094 21.322+18118450 22.322+10058760 31..00+00065457 51..1.+0000+000 87..10+00001600 81..00+00519065 82..00+00437384 83..00-00000664 71....+00000001 32..10+00065455
+110095+00000095 21.322+17895210 22.322+10086590 31..00+00072087 51..1.+0000+000 87..10+00001600 81..00+00523399 82..00+00431824 83..00-00001040 71....+00000001 32..10+00072080
+110096+00000096 21.322+17579460 22.322+10051770 31..00+00075815 51..1.+0000+000 87..10+00002150 81..00+00528136 82..00+00429602 83..00-00001226 71....+00000001 32..10+00075813
+110097+00000097 21.322+17261550 22.322+09996760 31..00+00076518 51..1.+0000+000 87..10+00002150 81..00+00531909 82..00+00430453 83..00-00000571 71....+00000001 32..10+00076518
+110098+00000098 21.322+17032760 22.322+09965830 31..00+00074290 51..1.+0000+000 87..10+00001800 81..00+00533386 82..00+00433635 83..00+00000139 71....+00000001 32..10+00074289
+110099+00000099 21.322+16666680 22.322+09916950 31..00+00071014 51..1.+0000+000 87..10+00001800 81..00+00535504 82..00+00438505 83..00+00000667 71....+00000001 32..10+00071008
+110100+00000100 21.322+16241580 22.322+09886910 31..00+00069434 51..1.+0000+000 87..10+00001800 81..00+00538646 82..00+00442328 83..00+00000974 71....+00000001 32..10+00069423
+110101+00000101 21.322+15869780 22.322+09833350 31..00+00067026 51..1.+0000+000 87..10+00001800 81..00+00540484 82..00+00446611 83..00+00001495 71....+00000001 32..10+00067003
+110102+00000102 21.322+15843100 22.322+09863310 31..00+00057270 51..1.+0000+000 87..10+00001300 81..00+00534786 82..00+00454522 83..00+00001470 71....+00000001 32..10+00057257
+110103+00000103 21.322+15805140 22.322+09838420 31..00+00050474 51..1.+0000+000 87..10+00001800 81..00+00530894 82..00+00460106 83..00+00001021 71....+00000001 32..10+00050458
+110104+00000104 21.322+15842430 22.322+09919180 31..00+00045533 51..1.+0000+000 87..10+00001800 81..00+00527665 82..00+00463839 83..00+00000318 71....+00000001 32..10+00045530
+110105+00000105 21.322+15776110 22.322+09972340 31..00+00041498 51..1.+0000+000 87..10+00001800 81..00+00525557 82..00+00467306 83..00-00000080 71....+00000001 32..10+00041498
+110106+00000106 21.322+15462150 22.322+09966800 31..00+00037136 51..1.+0000+000 87..10+00001800 81..00+00524285 82..00+00471906 83..00-00000066 71....+00000001 32..10+00037136
+110107+00000107 21.322+15235420 22.322+09949240 31..00+00032705 51..1.+0000+000 87..10+00001800 81..00+00522255 82..00+00476035 83..00+00000001 71....+00000001 32..10+00032704
+110108+00000108 21.322+14863460 22.322+09992820 31..00+00028418 51..1.+0000+000 87..10+00001800 81..00+00520521 82..00+00480341 83..00-00000228 71....+00000001 32..10+00028418
+110109+00000109 21.322+14426120 22.322+09986540 31..00+00024089 51..1.+0000+000 87..10+00001800 81..00+00518497 82..00+00484569 83..00-00000209 71....+00000001 32..10+00024089
+110110+00000110 21.322+13585250 22.322+09938800 31..00+00020284 51..1.+0000+000 87..10+00001800 81..00+00517151 82..00+00489171 83..00-00000065 71....+00000001 32..10+00020283
+110111+00000111 21.322+12465610 22.322+09901070 31..00+00016152 51..1.+0000+000 87..10+00001800 81..00+00514954 82..00+00493900 83..00-00000009 71....+00000001 32..10+00016150
+110112+00000112 21.322+10964870 22.322+09760890 31..00+00013729 51..1.+0000+000 87..10+00001800 81..00+00513562 82..00+00497929 83..00+00000256 71....+00000001 32..10+00013720
+110113+00000113 21.322+08777430 22.322+09619770 31..00+00011964 51..1.+0000+000 87..10+00001800 81..00+00511723 82..00+00502279 83..00+00000454 71....+00000001 32..10+00011942
+110114+00000114 21.322+06734110 22.322+09454150 31..00+00013836 51..1.+0000+000 87..10+00001800 81..00+00512010 82..00+00506766 83..00+00000925 71....+00000001 32..10+00013785
+110115+00000115 21.322+05892570 22.322+09371220 31..00+00017254 51..1.+0000+000 87..10+00001800 81..00+00513719 82..00+00510325 83..00+00001441 71....+00000001 32..10+00017170
+110116+00000116 21.322+05668590 22.322+09235970 31..00+00021048 51..1.+0000+000 87..10+00001800 81..00+00516244 82..00+00513146 83..00+00002260 71....+00000001 32..10+00020897
+110117+00000117 21.322+05751660 22.322+09124330 31..00+00025788 51..1.+0000+000 87..10+00001800 81..00+00520065 82..00+00515809 83..00+00003276 71....+00000001 32..10+00025545
+110118+00000118 21.322+05429370 22.322+09186040 31..00+00030303 51..1.+0000+000 87..10+00001800 81..00+00522637 82..00+00519772 83..00+00003604 71....+00000001 32..10+00030056
+110119+00000119 21.322+04605860 22.322+09221790 31..00+00032707 51..1.+0000+000 87..10+00001800 81..00+00521491 82..00+00524331 83..00+00003728 71....+00000001 32..10+00032463
+110120+00000120 21.322+03798260 22.322+09246930 31..00+00033408 51..1.+0000+000 87..10+00001800 81..00+00518639 82..00+00527443 83..00+00003683 71....+00000001 32..10+00033174
+110121+00000121 21.322+02513190 22.322+09344850 31..00+00030160 51..1.+0000+000 87..10+00001800 81..00+00511538 82..00+00527693 83..00+00002838 71....+00000001 32..10+00030001
+110122+00000122 21.322+16755920 22.322+10070270 31..00+00047844 51..1.+0000+000 87..10+00001300 81..00+00523337 82..00+00458237 83..00-00000288 71....+00000099 32..10+00047841
+110123+00000123 21.322+16905020 22.322+10084450 31..00+00047423 51..1.+0000+000 87..10+00001300 81..00+00522155 82..00+00458076 83..00-00000389 71....+00000099 32..10+00047418
+110124+00000124 21.322+17062010 22.322+10101570 31..00+00047007 51..1.+0000+000 87..10+00001300 81..00+00520929 82..00+00457916 83..00-00000510 71....+00000099 32..10+00047001
+110125+00000125 21.322+17220340 22.322+10122390 31..00+00046649 51..1.+0000+000 87..10+00001300 81..00+00519723 82..00+00457736 83..00-00000657 71....+00000099 32..10+00046640
+110126+00000126 21.322+17434070 22.322+10152630 31..00+00046206 51..1.+0000+000 87..10+00001300 81..00+00518118 82..00+00457508 83..00-00000868 71....+00000099 32..10+00046193
+110127+00000127 21.322+17633340 22.322+10114690 31..00+00045863 51..1.+0000+000 87..10+00001850 81..00+00516657 82..00+00457276 83..00-00001136 71....+00000099 32..10+00045856
+110128+00000128 21.322+17799420 22.322+10117520 31..00+00045605 51..1.+0000+000 87..10+00001850 81..00+00515450 82..00+00457099 83..00-00001152 71....+00000099 32..10+00045598
+110129+00000129 21.322+17927050 22.322+10116040 31..00+00045412 51..1.+0000+000 87..10+00001850 81..00+00514525 82..00+00456981 83..00-00001138 71....+00000099 32..10+00045405
+110130+00000130 21.322+18105120 22.322+10129470 31..00+00045239 51..1.+0000+000 87..10+00001850 81..00+00513264 82..00+00456759 83..00-00001230 71....+00000099 32..10+00045229
+110131+00000131 21.322+18263220 22.322+10106340 31..00+00045084 51..1.+0000+000 87..10+00001850 81..00+00512146 82..00+00456589 83..00-00001063 71....+00000099 32..10+00045078
+110132+00000132 21.322+18415800 22.322+10075390 31..00+00000000 51..1.+0000+000 87..10+00001850 81..00+00000000 82..00+00000000 83..00+00000000 71....+00000099 32..10+00000000
+110133+00000133 21.322+18416020 22.322+10075160 31..00+00044938 51..1.+0000+000 87..10+00001850 81..00+00511065 82..00+00456448 83..00-00000840 71....+00000099 32..10+00044935
+110134+00000134 21.322+18564400 22.322+10067800 31..00+00044813 51..1.+0000+000 87..10+00001850 81..00+00510020 82..00+00456324 83..00-00000787 71....+00000099 32..10+00044810
+110135+00000135 21.322+18638890 22.322+10064450 31..00+00044786 51..1.+0000+000 87..10+00001850 81..00+00509502 82..00+00456236 83..00-00000763 71....+00000099 32..10+00044783
+110136+00000136 21.322+18652500 22.322+10059230 31..00+00045999 51..1.+0000+000 87..10+00001850 81..00+00509664 82..00+00455029 83..00-00000738 71....+00000099 32..10+00045998
+110137+00000137 21.322+18663950 22.322+10056380 31..00+00047144 51..1.+0000+000 87..10+00001850 81..00+00509821 82..00+00453892 83..00-00000727 71....+00000099 32..10+00047142
+110138+00000138 21.322+18673320 22.322+10056940 31..00+00048313 51..1.+0000+000 87..10+00001850 81..00+00509995 82..00+00452734 83..00-00000742 71....+00000099 32..10+00048312
+110139+00000139 21.322+18675450 22.322+10053570 31..00+00049105 51..1.+0000+000 87..10+00001850 81..00+00510143 82..00+00451956 83..00-00000723 71....+00000099 32..10+00049103
+110140+00000140 21.322+18683360 22.322+10053210 31..00+00049821 51..1.+0000+000 87..10+00001850 81..00+00510230 82..00+00451243 83..00-00000726 71....+00000099 32..10+00049819
+110141+00000141 21.322+18552370 22.322+10056600 31..00+00049889 51..1.+0000+000 87..10+00001850 81..00+00511246 82..00+00451397 83..00-00000753 71....+00000099 32..10+00049887
+110142+00000142 21.322+18401400 22.322+10059390 31..00+00050013 51..1.+0000+000 87..10+00001850 81..00+00512427 82..00+00451558 83..00-00000776 71....+00000099 32..10+00050011
+110143+00000143 21.322+18259720 22.322+10106760 31..00+00050178 51..1.+0000+000 87..10+00001550 81..00+00513545 82..00+00451691 83..00-00000851 71....+00000099 32..10+00050171
+110144+00000144 21.322+18142240 22.322+10118140 31..00+00050157 51..1.+0000+000 87..10+00001550 81..00+00514427 82..00+00451971 83..00-00000941 71....+00000099 32..10+00050149
+110145+00000145 21.322+18045420 22.322+10131320 31..00+00050353 51..1.+0000+000 87..10+00001550 81..00+00515215 82..00+00452012 83..00-00001048 71....+00000099 32..10+00050342
+110146+00000146 21.322+18016560 22.322+10113660 31..00+00049513 51..1.+0000+000 87..10+00001550 81..00+00515175 82..00+00452878 83..00-00000894 71....+00000099 32..10+00049505
+110147+00000147 21.322+18006310 22.322+10106410 31..00+00048641 51..1.+0000+000 87..10+00001550 81..00+00514983 82..00+00453731 83..00-00000823 71....+00000099 32..10+00048634
+110148+00000148 21.322+17981530 22.322+10111510 31..00+00047895 51..1.+0000+000 87..10+00001550 81..00+00514930 82..00+00454499 83..00-00000849 71....+00000099 32..10+00047888
+110149+00000149 21.322+17975570 22.322+10125380 31..00+00047358 51..1.+0000+000 87..10+00001550 81..00+00514804 82..00+00455025 83..00-00000942 71....+00000099 32..10+00047348
+110150+00000150 21.322+17872230 22.322+10206500 31..00+00047493 51..1.+0000+000 87..10+00001550 81..00+00515571 82..00+00455159 83..00-00001550 71....+00000099 32..10+00047468
+110151+00000151 21.322+17788170 22.322+10231620 31..00+00047578 51..1.+0000+000 87..10+00001550 81..00+00516189 82..00+00455294 83..00-00001740 71....+00000099 32..10+00047547
+110152+00000152 21.322+17698090 22.322+10191110 31..00+00047709 51..1.+0000+000 87..10+00001550 81..00+00516870 82..00+00455397 83..00-00001442 71....+00000099 32..10+00047687
+110153+00000153 21.322+17579590 22.322+10145530 31..00+00047865 51..1.+0000+000 87..10+00001550 81..00+00517758 82..00+00455565 83..00-00001104 71....+00000099 32..10+00047852
+110154+00000154 21.322+17457010 22.322+10114730 31..00+00048071 51..1.+0000+000 87..10+00001550 81..00+00518692 82..00+00455721 83..00-00000876 71....+00000099 32..10+00048063
+110155+00000155 21.322+17326380 22.322+10093310 31..00+00048333 51..1.+0000+000 87..10+00001550 81..00+00519705 82..00+00455872 83..00-00000718 71....+00000099 32..10+00048328
+110156+00000156 21.322+17210530 22.322+10071950 31..00+00048561 51..1.+0000+000 87..10+00001550 81..00+00520602 82..00+00456029 83..00-00000559 71....+00000099 32..10+00048558
+110157+00000157 21.322+17097820 22.322+10056120 31..00+00048852 51..1.+0000+000 87..10+00001550 81..00+00521506 82..00+00456139 83..00-00000440 71....+00000099 32..10+00048850
+110158+00000158 21.322+16925380 22.322+10032190 31..00+00049335 51..1.+0000+000 87..10+00001550 81..00+00522911 82..00+00456308 83..00-00000259 71....+00000099 32..10+00049335
+110159+00000159 21.322+16830930 22.322+10025670 31..00+00049515 51..1.+0000+000 87..10+00001550 81..00+00523643 82..00+00456495 83..00-00000209 71....+00000099 32..10+00049515
+110160+00000160 21.322+16787860 22.322+10030090 31..00+00048619 51..1.+0000+000 87..10+00001550 81..00+00523503 82..00+00457440 83..00-00000240 71....+00000099 32..10+00048619
+110161+00000161 21.322+16641770 22.322+09997350 31..00+00048856 51..1.+0000+000 87..10+00001550 81..00+00524593 82..00+00457785 83..00+00000010 71....+00000098 32..10+00048856
+110162+00000162 21.322+17076440 22.322+10072800 31..00+00049494 51..1.+0000+000 87..10+00001300 81..00+00521937 82..00+00455637 83..00-00000326 71....+00000098 32..10+00049491
+110163+00000163 21.322+19356910 22.322+10103760 31..00+00049956 51..1.+0000+000 87..10+00001300 81..00+00505037 82..00+00450306 83..00-00000574 71....+00000098 32..10+00049949
+110164+00000164 21.322+15561340 22.322+10037400 31..00+00036708 51..1.+0000+000 87..10+00001300 81..00+00523569 82..00+00471859 83..00+00000024 71....+00000098 32..10+00036707
+110165+00000165 21.322+17639460 22.322+10058670 31..00+00043380 51..1.+0000+000 87..10+00001210 81..00+00515718 82..00+00459570 83..00-00000070 71....+00000040 32..10+00043378
+110166+00000166 21.322+18097660 22.322+10035640 31..00+00041797 51..1.+0000+000 87..10+00001210 81..00+00512304 82..00+00460056 83..00+00000096 71....+00000040 32..10+00041796
+110167+00000167 21.322+18556110 22.322+10035050 31..00+00039118 51..1.+0000+000 87..10+00001210 81..00+00508796 82..00+00461884 83..00+00000115 71....+00000040 32..10+00039117
+110168+00000168 21.322+18888020 22.322+10020510 31..00+00035423 51..1.+0000+000 87..10+00001210 81..00+00506156 82..00+00465116 83..00+00000216 71....+00000040 32..10+00035423
+110169+00000169 21.322+19360740 22.322+10017060 31..00+00033382 51..1.+0000+000 87..10+00001210 81..00+00503346 82..00+00466786 83..00+00000241 71....+00000040 32..10+00033382
+110170+00000170 21.322+20027800 22.322+10006110 31..00+00032963 51..1.+0000+000 87..10+00001210 81..00+00499856 82..00+00467037 83..00+00000298 71....+00000040 32..10+00032963
+110171+00000171 21.322+17585970 22.322+10048180 31..00+00044259 51..1.+0000+000 87..10+00002100 81..00+00516383 82..00+00458886 83..00-00000895 71....+00000044 32..10+00044258
+110172+00000172 21.322+17904620 22.322+10043940 31..00+00042348 51..1.+0000+000 87..10+00002100 81..00+00513688 82..00+00459926 83..00-00000852 71....+00000044 32..10+00042347
+110173+00000173 21.322+18232590 22.322+10050120 31..00+00041497 51..1.+0000+000 87..10+00002100 81..00+00511373 82..00+00460093 83..00-00000887 71....+00000044 32..10+00041496
+110174+00000174 21.322+18525660 22.322+10030960 31..00+00039515 51..1.+0000+000 87..10+00002100 81..00+00509069 82..00+00461541 83..00-00000752 71....+00000044 32..10+00039514
+110175+00000175 21.322+18691620 22.322+10019600 31..00+00037322 51..1.+0000+000 87..10+00002100 81..00+00507617 82..00+00463464 83..00-00000675 71....+00000044 32..10+00037322
+110176+00000176 21.322+18924210 22.322+10017690 31..00+00035174 51..1.+0000+000 87..10+00002100 81..00+00505916 82..00+00465327 83..00-00000658 71....+00000044 32..10+00035174
+110177+00000177 21.322+19355780 22.322+10018670 31..00+00033435 51..1.+0000+000 87..10+00002100 81..00+00503378 82..00+00466736 83..00-00000658 71....+00000044 32..10+00033435
+110178+00000178 21.322+19979610 22.322+10004830 31..00+00032982 51..1.+0000+000 87..10+00002100 81..00+00500106 82..00+00467019 83..00-00000585 71....+00000044 32..10+00032982
+110179+00000179 21.322+20472900 22.322+09988540 31..00+00030603 51..1.+0000+000 87..10+00002100 81..00+00497729 82..00+00469482 83..00-00000505 71....+00000044 32..10+00030603
+110180+00000180 21.322+21037380 22.322+09975270 31..00+00028576 51..1.+0000+000 87..10+00002100 81..00+00495364 82..00+00471803 83..00-00000449 71....+00000044 32..10+00028575
+110181+00000181 21.322+21514960 22.322+09953690 31..00+00026034 51..1.+0000+000 87..10+00002100 81..00+00493863 82..00+00474700 83..00-00000371 71....+00000044 32..10+00026033
+110182+00000182 21.322+22665520 22.322+09934390 31..00+00023772 51..1.+0000+000 87..10+00002100 81..00+00490336 82..00+00478283 83..00-00000315 71....+00000044 32..10+00023771
+110183+00000183 21.322+23148740 22.322+09916650 31..00+00020447 51..1.+0000+000 87..10+00002100 81..00+00490295 82..00+00482005 83..00-00000292 71....+00000044 32..10+00020446
+110184+00000184 21.322+23635570 22.322+09883040 31..00+00017039 51..1.+0000+000 87..10+00002100 81..00+00490791 82..00+00485667 83..00-00000247 71....+00000044 32..10+00017036
+110185+00000185 21.322+24731010 22.322+09848950 31..00+00014245 51..1.+0000+000 87..10+00002100 81..00+00490364 82..00+00489514 83..00-00000222 71....+00000044 32..10+00014241
+110186+00000186 21.322+26696700 22.322+09823080 31..00+00013906 51..1.+0000+000 87..10+00002100 81..00+00487929 82..00+00493107 83..00-00000174 71....+00000044 32..10+00013900
+110187+00000187 21.322+28556120 22.322+09856670 31..00+00015964 51..1.+0000+000 87..10+00002100 81..00+00484449 82..00+00496411 83..00-00000201 71....+00000044 32..10+00015960
+110188+00000188 21.322+30154110 22.322+09827980 31..00+00016582 51..1.+0000+000 87..10+00002100 81..00+00483429 82..00+00500401 83..00-00000112 71....+00000044 32..10+00016576
+110189+00000189 21.322+31732130 22.322+09780200 31..00+00017210 51..1.+0000+000 87..10+00002100 81..00+00483433 82..00+00504622 83..00+00000034 71....+00000044 32..10+00017200
+110190+00000190 21.322+32515540 22.322+09755790 31..00+00020235 51..1.+0000+000 87..10+00002100 81..00+00481338 82..00+00507783 83..00+00000216 71....+00000044 32..10+00020220
+110191+00000191 21.322+31950730 22.322+09761370 31..00+00023257 51..1.+0000+000 87..10+00002100 81..00+00477842 82..00+00507010 83..00+00000312 71....+00000044 32..10+00023240
+110192+00000192 21.322+31325260 22.322+09786670 31..00+00024581 51..1.+0000+000 87..10+00002100 81..00+00475964 82..00+00505077 83..00+00000264 71....+00000044 32..10+00024567
+110193+00000193 21.322+30989920 22.322+09755690 31..00+00028625 51..1.+0000+000 87..10+00002100 81..00+00471742 82..00+00504430 83..00+00000538 71....+00000044 32..10+00028603
+110194+00000194 21.322+30484590 22.322+09751600 31..00+00030683 51..1.+0000+000 87..10+00002100 81..00+00469429 82..00+00502332 83..00+00000637 71....+00000044 32..10+00030660
+110195+00000195 21.322+30413790 22.322+09763800 31..00+00033961 51..1.+0000+000 87..10+00002100 81..00+00466134 82..00+00502204 83..00+00000700 71....+00000044 32..10+00033938
+110196+00000196 21.322+29866880 22.322+09791560 31..00+00033649 51..1.+0000+000 87..10+00002100 81..00+00466377 82..00+00499297 83..00+00000542 71....+00000044 32..10+00033631
+110197+00000197 21.322+29322660 22.322+09825020 31..00+00033774 51..1.+0000+000 87..10+00002100 81..00+00466430 82..00+00496415 83..00+00000368 71....+00000044 32..10+00033761
+110198+00000198 21.322+28559700 22.322+09864720 31..00+00030411 51..1.+0000+000 87..10+00002100 81..00+00470371 82..00+00493180 83..00+00000086 71....+00000044 32..10+00030404
+110199+00000199 21.322+27974410 22.322+09897050 31..00+00027530 51..1.+0000+000 87..10+00002100 81..00+00473855 82..00+00491389 83..00-00000115 71....+00000044 32..10+00027527
+110200+00000200 21.322+27442200 22.322+09888120 31..00+00029506 51..1.+0000+000 87..10+00002100 81..00+00472848 82..00+00488463 83..00-00000041 71....+00000044 32..10+00029502
+110201+00000201 21.322+27801780 22.322+09845100 31..00+00033509 51..1.+0000+000 87..10+00002100 81..00+00468479 82..00+00488662 83..00+00000255 71....+00000044 32..10+00033499
+110202+00000202 21.322+28434550 22.322+09827470 31..00+00035252 51..1.+0000+000 87..10+00002100 81..00+00465821 82..00+00491422 83..00+00000395 71....+00000044 32..10+00035239
+110203+00000203 21.322+28209080 22.322+09835130 31..00+00039576 51..1.+0000+000 87..10+00002100 81..00+00461993 82..00+00489017 83..00+00000465 71....+00000044 32..10+00039563
+110204+00000204 21.322+28402490 22.322+09806620 31..00+00043654 51..1.+0000+000 87..10+00002100 81..00+00457732 82..00+00489165 83..00+00000766 71....+00000044 32..10+00043634
+110205+00000205 21.322+27943200 22.322+09782810 31..00+00047194 51..1.+0000+000 87..10+00002100 81..00+00455274 82..00+00485025 83..00+00001050 71....+00000044 32..10+00047167
+110206+00000206 21.322+27515960 22.322+09778740 31..00+00050851 51..1.+0000+000 87..10+00002100 81..00+00453000 82..00+00480670 83..00+00001207 71....+00000044 32..10+00050820
+110207+00000207 21.322+27129170 22.322+09799900 31..00+00049656 51..1.+0000+000 87..10+00002100 81..00+00455330 82..00+00478369 83..00+00001001 71....+00000044 32..10+00049632
+110208+00000208 21.322+26857330 22.322+09771870 31..00+00052333 51..1.+0000+000 87..10+00002100 81..00+00453944 82..00+00475218 83..00+00001315 71....+00000044 32..10+00052300
+110209+00000209 21.322+26672300 22.322+09770760 31..00+00056408 51..1.+0000+000 87..10+00002100 81..00+00451156 82..00+00471857 83..00+00001471 71....+00000044 32..10+00056372
+110210+00000210 21.322+26226950 22.322+09798290 31..00+00055394 51..1.+0000+000 87..10+00002100 81..00+00454077 82..00+00469074 83..00+00001195 71....+00000044 32..10+00055366
+110211+00000211 21.322+25940640 22.322+09797940 31..00+00057719 51..1.+0000+000 87..10+00002100 81..00+00453646 82..00+00465657 83..00+00001272 71....+00000044 32..10+00057690
+110212+00000212 21.322+25641250 22.322+09810640 31..00+00055523 51..1.+0000+000 87..10+00002100 81..00+00457009 82..00+00464902 83..00+00001091 71....+00000044 32..10+00055499
+110213+00000213 21.322+25582330 22.322+09791970 31..00+00059041 51..1.+0000+000 87..10+00002100 81..00+00454637 82..00+00462260 83..00+00001369 71....+00000044 32..10+00059009
+110214+00000214 21.322+25166660 22.322+09800310 31..00+00058528 51..1.+0000+000 87..10+00002100 81..00+00457566 82..00+00459732 83..00+00001276 71....+00000044 32..10+00058499
+110215+00000215 21.322+25420960 22.322+09821250 31..00+00054153 51..1.+0000+000 87..10+00002100 81..00+00459277 82..00+00464336 83..00+00000961 71....+00000044 32..10+00054132
+110216+00000216 21.322+25796180 22.322+09813500 31..00+00051156 51..1.+0000+000 87..10+00002100 81..00+00459615 82..00+00468636 83..00+00000939 71....+00000044 32..10+00051134
+110217+00000217 21.322+25980310 22.322+09830250 31..00+00047244 51..1.+0000+000 87..10+00002100 81..00+00461878 82..00+00472122 83..00+00000700 71....+00000044 32..10+00047228
+110218+00000218 21.322+25816790 22.322+09862520 31..00+00044492 51..1.+0000+000 87..10+00002100 81..00+00464781 82..00+00472830 83..00+00000401 71....+00000044 32..10+00044481
+110219+00000219 21.322+25403470 22.322+09853800 31..00+00045072 51..1.+0000+000 87..10+00002100 81..00+00466183 82..00+00470219 83..00+00000475 71....+00000044 32..10+00045061
+110220+00000220 21.322+25266700 22.322+09857880 31..00+00047223 51..1.+0000+000 87..10+00002100 81..00+00465248 82..00+00468044 83..00+00000494 71....+00000044 32..10+00047211
+110221+00000221 21.322+25198090 22.322+09859350 31..00+00043930 51..1.+0000+000 87..10+00002100 81..00+00467993 82..00+00469925 83..00+00000411 71....+00000044 32..10+00043920
+110222+00000222 21.322+24772930 22.322+09867870 31..00+00042797 51..1.+0000+000 87..10+00002100 81..00+00470842 82..00+00468685 83..00+00000328 71....+00000044 32..10+00042788
+110223+00000223 21.322+24431380 22.322+09872340 31..00+00044540 51..1.+0000+000 87..10+00002100 81..00+00471446 82..00+00465829 83..00+00000333 71....+00000044 32..10+00044531
+110224+00000224 21.322+24093070 22.322+09901970 31..00+00041255 51..1.+0000+000 87..10+00002100 81..00+00475268 82..00+00466986 83..00+00000075 71....+00000044 32..10+00041250
+110225+00000225 21.322+23914860 22.322+09885450 31..00+00044509 51..1.+0000+000 87..10+00002100 81..00+00474326 82..00+00463651 83..00+00000241 71....+00000044 32..10+00044502
+110226+00000226 21.322+23080920 22.322+09911210 31..00+00042020 51..1.+0000+000 87..10+00002100 81..00+00480451 82..00+00462809 83..00+00000026 71....+00000044 32..10+00042016
+110227+00000227 21.322+22786100 22.322+09923310 31..00+00039475 51..1.+0000+000 87..10+00002100 81..00+00483272 82..00+00464248 83..00-00000084 71....+00000044 32..10+00039472
+110228+00000228 21.322+23235340 22.322+09925420 31..00+00036872 51..1.+0000+000 87..10+00002100 81..00+00482059 82..00+00467790 83..00-00000128 71....+00000044 32..10+00036870
+110229+00000229 21.322+23289470 22.322+09937630 31..00+00033461 51..1.+0000+000 87..10+00002100 81..00+00483471 82..00+00470909 83..00-00000232 71....+00000044 32..10+00033459
+110230+00000230 21.322+22712990 22.322+09960370 31..00+00030781 51..1.+0000+000 87..10+00002100 81..00+00487276 82..00+00471972 83..00-00000368 71....+00000044 32..10+00030781
+110231+00000231 21.322+22205560 22.322+09952850 31..00+00030664 51..1.+0000+000 87..10+00002100 81..00+00489588 82..00+00471158 83..00-00000333 71....+00000044 32..10+00030664
+110232+00000232 21.322+21771860 22.322+09962270 31..00+00030963 51..1.+0000+000 87..10+00002100 81..00+00491493 82..00+00470229 83..00-00000376 71....+00000044 32..10+00030962
+110233+00000233 21.322+21372300 22.322+09978370 31..00+00031440 51..1.+0000+000 87..10+00002100 81..00+00493275 82..00+00469288 83..00-00000453 71....+00000044 32..10+00031440
+110234+00000234 21.322+21076880 22.322+09986010 31..00+00032695 51..1.+0000+000 87..10+00002100 81..00+00494496 82..00+00467772 83..00-00000488 71....+00000044 32..10+00032695
+110235+00000235 21.322+20778470 22.322+09994220 31..00+00033703 51..1.+0000+000 87..10+00002100 81..00+00495889 82..00+00466548 83..00-00000529 71....+00000044 32..10+00033703
+110236+00000236 21.322+20553420 22.322+09999230 31..00+00034896 51..1.+0000+000 87..10+00002100 81..00+00496970 82..00+00465235 83..00-00000556 71....+00000044 32..10+00034896
+110237+00000237 21.322+20267460 22.322+10006820 31..00+00035826 51..1.+0000+000 87..10+00002100 81..00+00498495 82..00+00464206 83..00-00000598 71....+00000044 32..10+00035826
+110238+00000238 21.322+19967060 22.322+10009030 31..00+00036545 51..1.+0000+000 87..10+00002100 81..00+00500189 82..00+00463456 83..00-00000612 71....+00000044 32..10+00036545
+110239+00000239 21.322+19655610 22.322+10015870 31..00+00036734 51..1.+0000+000 87..10+00002100 81..00+00501986 82..00+00463320 83..00-00000651 71....+00000044 32..10+00036733
+110240+00000240 21.322+19422680 22.322+10012860 31..00+00037468 51..1.+0000+000 87..10+00002100 81..00+00503393 82..00+00462686 83..00-00000636 71....+00000044 32..10+00037468
+110241+00000241 21.322+19298970 22.322+10028100 31..00+00038432 51..1.+0000+000 87..10+00002100 81..00+00504223 82..00+00461802 83..00-00000730 71....+00000044 32..10+00038431
+110242+00000242 21.322+19168910 22.322+10040190 31..00+00039742 51..1.+0000+000 87..10+00002100 81..00+00505173 82..00+00460597 83..00-00000811 71....+00000044 32..10+00039742
+110243+00000243 21.322+19019380 22.322+10032630 31..00+00041194 51..1.+0000+000 87..10+00002100 81..00+00506320 82..00+00459294 83..00-00000771 71....+00000044 32..10+00041194
+110244+00000244 21.322+19040890 22.322+10033690 31..00+00042581 51..1.+0000+000 87..10+00002100 81..00+00506391 82..00+00457902 83..00-00000785 71....+00000044 32..10+00042581
+110245+00000245 21.322+18940270 22.322+10033740 31..00+00042977 51..1.+0000+000 87..10+00002100 81..00+00507121 82..00+00457618 83..00-00000788 71....+00000044 32..10+00042976
+110246+00000246 21.322+18747130 22.322+10033800 31..00+00043331 51..1.+0000+000 87..10+00002100 81..00+00508473 82..00+00457506 83..00-00000790 71....+00000044 32..10+00043331
+110247+00000247 21.322+18559180 22.322+10049460 31..00+00043686 51..1.+0000+000 87..10+00002100 81..00+00509803 82..00+00457429 83..00-00000899 71....+00000044 32..10+00043685
+110248+00000248 21.322+18366160 22.322+10056090 31..00+00044176 51..1.+0000+000 87..10+00002100 81..00+00511213 82..00+00457273 83..00-00000949 71....+00000044 32..10+00044174
+110249+00000249 21.322+18401920 22.322+10054170 31..00+00044918 51..1.+0000+000 87..10+00002100 81..00+00511157 82..00+00456492 83..00-00000942 71....+00000044 32..10+00044916
+110250+00000250 21.322+24817960 22.322+10025990 31..00+00015841 51..1.+0000+000 87..10+00001800 81..00+00489124 82..00+00488483 83..00-00000325 71....+00000045 32..10+00015841
+110251+00000251 21.322+25430860 22.322+10007520 31..00+00015800 51..1.+0000+000 87..10+00001800 81..00+00488097 82..00+00489609 83..00-00000279 71....+00000045 32..10+00015800
+110252+00000252 21.322+26050920 22.322+09999870 31..00+00015547 51..1.+0000+000 87..10+00001800 81..00+00487349 82..00+00490962 83..00-00000260 71....+00000045 32..10+00015547
+110253+00000253 21.322+26435740 22.322+10015560 31..00+00015340 51..1.+0000+000 87..10+00001800 81..00+00487002 82..00+00491853 83..00-00000297 71....+00000045 32..10+00015340
+110254+00000254 21.322+27029190 22.322+10015630 31..00+00015437 51..1.+0000+000 87..10+00001800 81..00+00486214 82..00+00493055 83..00-00000298 71....+00000045 32..10+00015437
+110255+00000255 21.322+27401890 22.322+10026440 31..00+00016166 51..1.+0000+000 87..10+00001800 81..00+00485161 82..00+00493584 83..00-00000327 71....+00000045 32..10+00016166
+110256+00000256 21.322+27446050 22.322+10016040 31..00+00017130 51..1.+0000+000 87..10+00001800 81..00+00484230 82..00+00493311 83..00-00000303 71....+00000045 32..10+00017130
+110257+00000257 21.322+27649480 22.322+09964410 31..00+00018173 51..1.+0000+000 87..10+00001800 81..00+00483052 82..00+00493442 83..00-00000158 71....+00000045 32..10+00018173
+110258+00000258 21.322+28050610 22.322+09982040 31..00+00019399 51..1.+0000+000 87..10+00001800 81..00+00481503 82..00+00494152 83..00-00000205 71....+00000045 32..10+00019399
+110259+00000259 21.322+28305470 22.322+09973890 31..00+00020180 51..1.+0000+000 87..10+00001800 81..00+00480531 82..00+00494692 83..00-00000177 71....+00000045 32..10+00020180
+110260+00000260 21.322+28590520 22.322+09990280 31..00+00020669 51..1.+0000+000 87..10+00001800 81..00+00479836 82..00+00495461 83..00-00000228 71....+00000045 32..10+00020669
+110261+00000261 21.322+28428310 22.322+10001150 31..00+00021939 51..1.+0000+000 87..10+00001800 81..00+00478726 82..00+00494639 83..00-00000264 71....+00000045 32..10+00021939
+110262+00000262 21.322+28286530 22.322+09987910 31..00+00023292 51..1.+0000+000 87..10+00001800 81..00+00477546 82..00+00493806 83..00-00000216 71....+00000045 32..10+00023292
+110263+00000263 21.322+27860760 22.322+09975770 31..00+00023528 51..1.+0000+000 87..10+00001800 81..00+00477788 82..00+00492242 83..00-00000170 71....+00000045 32..10+00023528
+110264+00000264 21.322+27495720 22.322+09978500 31..00+00025312 51..1.+0000+000 87..10+00001800 81..00+00476622 82..00+00490298 83..00-00000174 71....+00000045 32..10+00025312
+110265+00000265 21.322+27508080 22.322+09963400 31..00+00027313 51..1.+0000+000 87..10+00001800 81..00+00474753 82..00+00489580 83..00-00000103 71....+00000045 32..10+00027313
+110266+00000266 21.322+27386000 22.322+09946370 31..00+00029356 51..1.+0000+000 87..10+00001800 81..00+00473085 82..00+00488282 83..00-00000013 71....+00000045 32..10+00029355
+110267+00000267 21.322+27439710 22.322+09926630 31..00+00031092 51..1.+0000+000 87..10+00001800 81..00+00471391 82..00+00487831 83..00+00000098 71....+00000045 32..10+00031090
+110268+00000268 21.322+26938620 22.322+09937010 31..00+00030693 51..1.+0000+000 87..10+00001800 81..00+00472789 82..00+00485803 83..00+00000044 71....+00000045 32..10+00030692
+110269+00000269 21.322+26614020 22.322+09960900 31..00+00029534 51..1.+0000+000 87..10+00001800 81..00+00474547 82..00+00485022 83..00-00000079 71....+00000045 32..10+00029533
+110270+00000270 21.322+26304490 22.322+09985350 31..00+00028473 51..1.+0000+000 87..10+00001800 81..00+00476191 82..00+00484384 83..00-00000194 71....+00000045 32..10+00028473
+110271+00000271 21.322+26063390 22.322+09997620 31..00+00028474 51..1.+0000+000 87..10+00001800 81..00+00476799 82..00+00483494 83..00-00000249 71....+00000045 32..10+00028474
+110272+00000272 21.322+25774960 22.322+10006340 31..00+00028508 51..1.+0000+000 87..10+00001800 81..00+00477543 82..00+00482439 83..00-00000288 71....+00000045 32..10+00028508
+110273+00000273 21.322+25511000 22.322+09993040 31..00+00028415 51..1.+0000+000 87..10+00001800 81..00+00478361 82..00+00481583 83..00-00000229 71....+00000045 32..10+00028415
+110274+00000274 21.322+25135430 22.322+10000910 31..00+00027976 51..1.+0000+000 87..10+00001800 81..00+00479802 82..00+00480644 83..00-00000264 71....+00000045 32..10+00027976
+110275+00000275 21.322+24636040 22.322+10012920 31..00+00028099 51..1.+0000+000 87..10+00001800 81..00+00481299 82..00+00479028 83..00-00000317 71....+00000045 32..10+00028099
+110276+00000276 21.322+24178460 22.322+09995140 31..00+00027639 51..1.+0000+000 87..10+00001800 81..00+00483134 82..00+00478103 83..00-00000239 71....+00000045 32..10+00027639
+110277+00000277 21.322+23739980 22.322+10015670 31..00+00027321 51..1.+0000+000 87..10+00001800 81..00+00484857 82..00+00477260 83..00-00000327 71....+00000045 32..10+00027321
+110278+00000278 21.322+23625560 22.322+10015400 31..00+00026212 51..1.+0000+000 87..10+00001800 81..00+00485866 82..00+00477925 83..00-00000323 71....+00000045 32..10+00026212
+110279+00000279 21.322+23564390 22.322+10021230 31..00+00024466 51..1.+0000+000 87..10+00001800 81..00+00487006 82..00+00479270 83..00-00000342 71....+00000045 32..10+00024466
+110280+00000280 21.322+23779390 22.322+09998480 31..00+00022514 51..1.+0000+000 87..10+00001800 81..00+00487405 82..00+00481338 83..00-00000255 71....+00000045 32..10+00022514
+110281+00000281 21.322+24121310 22.322+09991940 31..00+00020017 51..1.+0000+000 87..10+00001800 81..00+00487928 82..00+00484033 83..00-00000235 71....+00000045 32..10+00020017
+110282+00000282 21.322+24251760 22.322+09976870 31..00+00018073 51..1.+0000+000 87..10+00001800 81..00+00488807 82..00+00485810 83..00-00000194 71....+00000045 32..10+00018073
+110283+00000283 21.322+24444350 22.322+10001540 31..00+00016897 51..1.+0000+000 87..10+00001800 81..00+00489139 82..00+00487056 83..00-00000264 71....+00000045 32..10+00016897
+110284+00000284 21.322+24776900 22.322+10000050 31..00+00015722 51..1.+0000+000 87..10+00001800 81..00+00489279 82..00+00488500 83..00-00000260 71....+00000045 32..10+00015722
+110285+00000285 21.322+22419920 22.322+09981260 31..00+00039132 51..1.+0000+000 87..10+00001800 81..00+00485481 82..00+00463661 83..00-00000145 71....+00000046 32..10+00039132
+110286+00000286 21.322+22042080 22.322+09983200 31..00+00039612 51..1.+0000+000 87..10+00001800 81..00+00487511 82..00+00462409 83..00-00000155 71....+00000046 32..10+00039612
+110287+00000287 21.322+21867100 22.322+09992940 31..00+00039929 51..1.+0000+000 87..10+00001800 81..00+00488457 82..00+00461776 83..00-00000216 71....+00000046 32..10+00039929
+110288+00000288 21.322+21719720 22.322+09990980 31..00+00041253 51..1.+0000+000 87..10+00001800 81..00+00488991 82..00+00460243 83..00-00000201 71....+00000046 32..10+00041253
+110289+00000289 21.322+21720040 22.322+09983550 31..00+00042309 51..1.+0000+000 87..10+00001800 81..00+00488707 82..00+00459226 83..00-00000151 71....+00000046 32..10+00042309
+110290+00000290 21.322+21815050 22.322+09983500 31..00+00043609 51..1.+0000+000 87..10+00001800 81..00+00487734 82..00+00458151 83..00-00000147 71....+00000046 32..10+00043609
+110291+00000291 21.322+21979940 22.322+09976120 31..00+00044119 51..1.+0000+000 87..10+00001800 81..00+00486499 82..00+00457998 83..00-00000094 71....+00000046 32..10+00044119
+110292+00000292 21.322+22115390 22.322+09973780 31..00+00044193 51..1.+0000+000 87..10+00001800 81..00+00485584 82..00+00458224 83..00-00000078 71....+00000046 32..10+00044193
+110293+00000293 21.322+22243810 22.322+09970320 31..00+00044867 51..1.+0000+000 87..10+00001800 81..00+00484512 82..00+00457892 83..00-00000051 71....+00000046 32..10+00044866
+110294+00000294 21.322+22463490 22.322+09963930 31..00+00044704 51..1.+0000+000 87..10+00001800 81..00+00483130 82..00+00458602 83..00-00000007 71....+00000046 32..10+00044704
+110295+00000295 21.322+22562450 22.322+09964030 31..00+00043356 51..1.+0000+000 87..10+00001800 81..00+00483017 82..00+00460110 83..00-00000015 71....+00000046 32..10+00043355
+110296+00000296 21.322+22695870 22.322+09968750 31..00+00042060 51..1.+0000+000 87..10+00001800 81..00+00482717 82..00+00461656 83..00-00000053 71....+00000046 32..10+00042059
+110297+00000297 21.322+22554000 22.322+09964030 31..00+00041136 51..1.+0000+000 87..10+00001800 81..00+00483936 82..00+00462131 83..00-00000027 71....+00000046 32..10+00041135
+110298+00000298 21.322+22439600 22.322+09980880 31..00+00040303 51..1.+0000+000 87..10+00001800 81..00+00484931 82..00+00462620 83..00-00000139 71....+00000046 32..10+00040303
+110299+00000299 21.322+22434420 22.322+09978000 31..00+00039475 51..1.+0000+000 87..10+00001800 81..00+00485270 82..00+00463376 83..00-00000123 71....+00000046 32..10+00039475
+110300+00000300 21.322+16804990 22.322+09955890 31..00+00073552 51..1.+0000+000 87..10+00001800 81..00+00535383 82..00+00435519 83..00+00000250 71....+00000021 32..10+00073551
+110301+00000301 21.322+16807910 22.322+09955880 31..00+00073521 51..1.+0000+000 87..10+00001800 81..00+00535338 82..00+00435531 83..00+00000250 71....+00000021 32..10+00073519
+110302+00000302 21.322+16856170 22.322+09947280 31..00+00071706 51..1.+0000+000 87..10+00001800 81..00+00533988 82..00+00436864 83..00+00000334 71....+00000021 32..10+00071703
+110303+00000303 21.322+16940780 22.322+09921700 31..00+00067641 51..1.+0000+000 87..10+00001800 81..00+00531265 82..00+00440024 83..00+00000572 71....+00000021 32..10+00067636
+110304+00000304 21.322+17044170 22.322+09919740 31..00+00063972 51..1.+0000+000 87..10+00001800 81..00+00528644 82..00+00442805 83..00+00000547 71....+00000021 32..10+00063967
+110305+00000305 21.322+17112880 22.322+09930920 31..00+00059524 51..1.+0000+000 87..10+00001800 81..00+00526077 82..00+00446496 83..00+00000386 71....+00000021 32..10+00059521
+110306+00000306 21.322+17015860 22.322+09946230 31..00+00055897 51..1.+0000+000 87..10+00001800 81..00+00525252 82..00+00450134 83..00+00000212 71....+00000021 32..10+00055895
+110307+00000307 21.322+16648330 22.322+09968830 31..00+00050332 51..1.+0000+000 87..10+00001800 81..00+00525291 82..00+00456484 83..00-00000013 71....+00000021 32..10+00050332
+110308+00000308 21.322+16298740 22.322+09986680 31..00+00045289 51..1.+0000+000 87..10+00001800 81..00+00524872 82..00+00462152 83..00-00000165 71....+00000021 32..10+00045289
+110309+00000309 21.322+16184370 22.322+10006430 31..00+00042209 51..1.+0000+000 87..10+00001800 81..00+00523811 82..00+00465148 83..00-00000302 71....+00000021 32..10+00042209
+110310+00000310 21.322+06150940 22.322+09147150 31..00+00023070 51..1.+0000+000 87..10+00001800 81..00+00518810 82..00+00512996 83..00+00002821 71....+00000022 32..10+00022863
+110311+00000311 21.322+05775360 22.322+09179060 31..00+00022623 51..1.+0000+000 87..10+00001800 81..00+00517674 82..00+00513819 83..00+00002649 71....+00000022 32..10+00022435
+110312+00000312 21.322+05083400 22.322+09279020 31..00+00022091 51..1.+0000+000 87..10+00001800 81..00+00515723 82..00+00515316 83..00+00002237 71....+00000022 32..10+00021950
+110313+00000313 21.322+03828560 22.322+09335860 31..00+00022397 51..1.+0000+000 87..10+00001800 81..00+00512603 82..00+00518367 83..00+00002072 71....+00000022 32..10+00022276
+110314+00000314 21.322+02558470 22.322+09384020 31..00+00022070 51..1.+0000+000 87..10+00001800 81..00+00508592 82..00+00520216 83..00+00001872 71....+00000022 32..10+00021966
+110315+00000315 21.322+01697300 22.322+09460950 31..00+00022258 51..1.+0000+000 87..10+00001800 81..00+00505843 82..00+00521394 83..00+00001622 71....+00000022 32..10+00022178
+110316+00000316 21.322+00821490 22.322+09499000 31..00+00021941 51..1.+0000+000 87..10+00001800 81..00+00502815 82..00+00521691 83..00+00001465 71....+00000022 32..10+00021873
+110317+00000317 21.322+39533010 22.322+09527960 31..00+00021196 51..1.+0000+000 87..10+00001800 81..00+00498451 82..00+00521081 83..00+00001310 71....+00000022 32..10+00021138
+110318+00000318 21.322+38664590 22.322+09602130 31..00+00020443 51..1.+0000+000 87..10+00001800 81..00+00495751 82..00+00519956 83..00+00001017 71....+00000022 32..10+00020403
+110319+00000319 21.322+16753130 22.322+10047570 31..00+00038771 51..1.+0000+000 87..10+00001800 81..00+00518927 82..00+00466164 83..00-00000550 71....+00000047 32..10+00038770
+110320+00000320 21.322+16716110 22.322+10047630 31..00+00035787 51..1.+0000+000 87..10+00001800 81..00+00517652 82..00+00468870 83..00-00000528 71....+00000047 32..10+00035786
+110321+00000321 21.322+15946520 22.322+10001110 31..00+00036917 51..1.+0000+000 87..10+00001800 81..00+00521950 82..00+00470317 83..00-00000266 71....+00000047 32..10+00036917
+110322+00000322 21.322+15956350 22.322+09999660 31..00+00041093 51..1.+0000+000 87..10+00001800 81..00+00524381 82..00+00466922 83..00-00000258 71....+00000047 32..10+00041093
+110323+00000323 21.322+36346340 22.322+09687700 31..00+00021581 51..1.+0000+000 87..10+00001800 81..00+00488297 82..00+00518102 83..00+00000798 71....+00000022 32..10+00021555
+110324+00000324 21.322+35213890 22.322+09742090 31..00+00023504 51..1.+0000+000 87..10+00001800 81..00+00483961 82..00+00517155 83..00+00000692 71....+00000022 32..10+00023485
+110325+00000325 21.322+34070590 22.322+09764190 31..00+00025977 51..1.+0000+000 87..10+00001800 81..00+00479169 82..00+00515490 83..00+00000702 71....+00000022 32..10+00025959
+110326+00000326 21.322+33135310 22.322+09793780 31..00+00028562 51..1.+0000+000 87..10+00001800 81..00+00474846 82..00+00513498 83..00+00000665 71....+00000022 32..10+00028547
+110327+00000327 21.322+32329480 22.322+09797190 31..00+00030006 51..1.+0000+000 87..10+00001800 81..00+00471995 82..00+00510731 83..00+00000696 71....+00000022 32..10+00029991
+110328+00000328 21.322+32102850 22.322+09775020 31..00+00030453 51..1.+0000+000 87..10+00001800 81..00+00471212 82..00+00509871 83..00+00000816 71....+00000022 32..10+00030434
+110329+00000329 21.322+32257800 22.322+09762680 31..00+00031528 51..1.+0000+000 87..10+00001800 81..00+00470455 82..00+00510941 83..00+00000915 71....+00000022 32..10+00031506
+110330+00000330 21.322+32254140 22.322+09764870 31..00+00031512 51..1.+0000+000 87..10+00001800 81..00+00470463 82..00+00510919 83..00+00000904 71....+00000022 32..10+00031491
+110331+00000331 21.322+31638810 22.322+09741720 31..00+00031420 51..1.+0000+000 87..10+00001800 81..00+00469640 82..00+00507993 83..00+00001014 71....+00000022 32..10+00031394
+110332+00000332 21.322+31807980 22.322+09738740 31..00+00032813 51..1.+0000+000 87..10+00001800 81..00+00468528 82..00+00509186 83..00+00001086 71....+00000022 32..10+00032785
+110333+00000333 21.322+31333100 22.322+09756080 31..00+00034030 51..1.+0000+000 87..10+00001800 81..00+00466738 82..00+00507069 83..00+00001044 71....+00000022 32..10+00034005
+110334+00000334 21.322+30788630 22.322+09785250 31..00+00036898 51..1.+0000+000 87..10+00001800 81..00+00463406 82..00+00504557 83..00+00000984 71....+00000022 32..10+00036877
+110335+00000335 21.322+30472670 22.322+09809900 31..00+00040274 51..1.+0000+000 87..10+00001800 81..00+00459855 82..00+00502986 83..00+00000943 71....+00000022 32..10+00040256
+110336+00000336 21.322+30124540 22.322+09810580 31..00+00043702 51..1.+0000+000 87..10+00001800 81..00+00456325 82..00+00500855 83..00+00001040 71....+00000022 32..10+00043683
+110337+00000337 21.322+29709290 22.322+09807720 31..00+00047215 51..1.+0000+000 87..10+00001800 81..00+00452855 82..00+00497846 83..00+00001166 71....+00000022 32..10+00047194
+110338+00000338 21.322+29424170 22.322+09800520 31..00+00049196 51..1.+0000+000 87..10+00001800 81..00+00451029 82..00+00495558 83..00+00001281 71....+00000022 32..10+00049172
+110339+00000339 21.322+29122300 22.322+09779420 31..00+00051309 51..1.+0000+000 87..10+00001800 81..00+00449209 82..00+00492953 83..00+00001518 71....+00000022 32..10+00051278
+110340+00000340 21.322+28732500 22.322+09766560 31..00+00053402 51..1.+0000+000 87..10+00001800 81..00+00447688 82..00+00489445 83..00+00001698 71....+00000022 32..10+00053366
+110341+00000341 21.322+28311940 22.322+09750570 31..00+00055743 51..1.+0000+000 87..10+00001800 81..00+00446246 82..00+00485403 83..00+00001924 71....+00000022 32..10+00055700
+110342+00000342 21.322+27593710 22.322+09761450 31..00+00059990 51..1.+0000+000 87..10+00001800 81..00+00444283 82..00+00477877 83..00+00001988 71....+00000022 32..10+00059948
+110343+00000343 21.322+27253210 22.322+09758910 31..00+00063913 51..1.+0000+000 87..10+00001800 81..00+00441986 82..00+00473291 83..00+00002160 71....+00000022 32..10+00063867
+110344+00000344 21.322+27057440 22.322+09747500 31..00+00068176 51..1.+0000+000 87..10+00001800 81..00+00439026 82..00+00469622 83..00+00002444 71....+00000022 32..10+00068122
+110345+00000345 21.322+26950760 22.322+09772870 31..00+00073036 51..1.+0000+000 87..10+00001300 81..00+00435224 82..00+00466361 83..00+00002846 71....+00000022 32..10+00072990
+110346+00000346 21.322+26939220 22.322+09773690 31..00+00072988 51..1.+0000+000 87..10+00001300 81..00+00435328 82..00+00466266 83..00+00002834 71....+00000022 32..10+00072942
+110347+00000347 21.322+26856290 22.322+09761570 31..00+00077564 51..1.+0000+000 87..10+00001300 81..00+00431750 82..00+00463261 83..00+00003145 71....+00000022 32..10+00077510
+110348+00000348 21.322+26753430 22.322+09749130 31..00+00081949 51..1.+0000+000 87..10+00001300 81..00+00428534 82..00+00460028 83..00+00003469 71....+00000022 32..10+00081885
+110349+00000349 21.322+26711690 22.322+09739840 31..00+00084537 51..1.+0000+000 87..10+00001300 81..00+00426553 82..00+00458285 83..00+00003694 71....+00000022 32..10+00084467
+110350+00000350 21.322+26701230 22.322+09728200 31..00+00085727 51..1.+0000+000 87..10+00001300 81..00+00425595 82..00+00457579 83..00+00003899 71....+00000022 32..10+00085649
+110351+00000351 21.322+26702740 22.322+09692470 31..00+00088386 51..1.+0000+000 87..10+00001300 81..00+00423296 82..00+00456293 83..00+00004509 71....+00000022 32..10+00088283
+110352+00000352 21.322+26673300 22.322+09669260 31..00+00090504 51..1.+0000+000 87..10+00001300 81..00+00421680 82..00+00454891 83..00+00004940 71....+00000022 32..10+00090381
+110353+00000353 21.322+26671560 22.322+09670910 31..00+00089332 51..1.+0000+000 87..10+00001300 81..00+00422706 82..00+00455453 83..00+00004856 71....+00000022 32..10+00089212
+110354+00000354 21.322+26657250 22.322+09650080 31..00+00092376 51..1.+0000+000 87..10+00001300 81..00+00420189 82..00+00453764 83..00+00005315 71....+00000022 32..10+00092236
+110355+00000355 21.322+26646600 22.322+09620120 31..00+00095829 51..1.+0000+000 87..10+00001300 81..00+00417309 82..00+00451910 83..00+00005956 71....+00000022 32..10+00095658
+110356+00000356 21.322+26650450 22.322+09594380 31..00+00099763 51..1.+0000+000 87..10+00001300 81..00+00413906 82..00+00450000 83..00+00006593 71....+00000022 32..10+00099560
+110357+00000357 21.322+26602690 22.322+09562940 31..00+00102552 51..1.+0000+000 87..10+00001300 81..00+00411915 82..00+00447957 83..00+00007276 71....+00000022 32..10+00102311
+110358+00000358 21.322+26556150 22.322+09525530 31..00+00106300 51..1.+0000+000 87..10+00001300 81..00+00409131 82..00+00445412 83..00+00008156 71....+00000022 32..10+00106005
+110359+00000359 21.322+26492900 22.322+09502360 31..00+00110742 51..1.+0000+000 87..10+00001300 81..00+00405930 82..00+00442209 83..00+00008889 71....+00000022 32..10+00110404
+110360+00000360 21.322+26436980 22.322+09492530 31..00+00115060 51..1.+0000+000 87..10+00001300 81..00+00402805 82..00+00439107 83..00+00009403 71....+00000022 32..10+00114694
+110361+00000361 21.322+26378460 22.322+09441420 31..00+00120117 51..1.+0000+000 87..10+00002150 81..00+00399190 82..00+00435544 83..00+00009917 71....+00000022 32..10+00119655
+110362+00000362 21.322+26355220 22.322+09463110 31..00+00124840 51..1.+0000+000 87..10+00001750 81..00+00395440 82..00+00432608 83..00+00010307 71....+00000022 32..10+00124396
+110363+00000363 21.322+26353500 22.322+09466040 31..00+00129666 51..1.+0000+000 87..10+00001700 81..00+00391413 82..00+00429971 83..00+00010704 71....+00000022 32..10+00129210
+110364+00000364 21.322+26365230 22.322+09461380 31..00+00127381 51..1.+0000+000 87..10+00001700 81..00+00393207 82..00+00431406 83..00+00010606 71....+00000030 32..10+00126925
+110365+00000365 21.322+26429120 22.322+09462230 31..00+00125872 51..1.+0000+000 87..10+00001700 81..00+00393796 82..00+00433280 83..00+00010461 71....+00000030 32..10+00125423
+110366+00000366 21.322+26422210 22.322+09464100 31..00+00123280 51..1.+0000+000 87..10+00001700 81..00+00396051 82..00+00434540 83..00+00010206 71....+00000030 32..10+00122843
+110367+00000367 21.322+26451690 22.322+09467590 31..00+00119926 51..1.+0000+000 87..10+00001700 81..00+00398581 82..00+00436787 83..00+00009859 71....+00000030 32..10+00119507
+110368+00000368 21.322+26536380 22.322+09473440 31..00+00116883 51..1.+0000+000 87..10+00001700 81..00+00400335 82..00+00439706 83..00+00009498 71....+00000030 32..10+00116484
+110369+00000369 21.322+26615680 22.322+09482220 31..00+00114181 51..1.+0000+000 87..10+00001700 81..00+00401902 82..00+00442311 83..00+00009117 71....+00000030 32..10+00113804
+110370+00000370 21.322+26678940 22.322+09492470 31..00+00111404 51..1.+0000+000 87..10+00001700 81..00+00403721 82..00+00444661 83..00+00008713 71....+00000030 32..10+00111050
+110371+00000371 21.322+26744040 22.322+09506090 31..00+00109510 51..1.+0000+000 87..10+00001700 81..00+00404790 82..00+00446563 83..00+00008328 71....+00000030 32..10+00109181
+110372+00000372 21.322+26829470 22.322+09503670 31..00+00102852 51..1.+0000+000 87..10+00002150 81..00+00409916 82..00+00451018 83..00+00007401 71....+00000030 32..10+00102540
+110373+00000373 21.322+26854550 22.322+09503950 31..00+00099852 51..1.+0000+000 87..10+00002150 81..00+00412357 82..00+00452791 83..00+00007163 71....+00000030 32..10+00099549
+110374+00000374 21.322+26883480 22.322+09522810 31..00+00099078 51..1.+0000+000 87..10+00002150 81..00+00412805 82..00+00453542 83..00+00006810 71....+00000030 32..10+00098800
+110375+00000375 21.322+26879280 22.322+09548000 31..00+00098200 51..1.+0000+000 87..10+00001850 81..00+00413582 82..00+00453883 83..00+00006657 71....+00000030 32..10+00097953
+110376+00000376 21.322+26883700 22.322+09550090 31..00+00097401 51..1.+0000+000 87..10+00001850 81..00+00414252 82..00+00454318 83..00+00006568 71....+00000030 32..10+00097157
+110377+00000377 21.322+26612160 22.322+09621270 31..00+00092338 51..1.+0000+000 87..10+00001500 81..00+00420572 82..00+00453231 83..00+00005531 71....+00000030 32..10+00092175
+110378+00000378 21.322+26514790 22.322+09644150 31..00+00091386 51..1.+0000+000 87..10+00001500 81..00+00422092 82..00+00452506 83..00+00005146 71....+00000030 32..10+00091243
+110379+00000379 21.322+26461800 22.322+09663440 31..00+00090739 51..1.+0000+000 87..10+00001500 81..00+00423026 82..00+00452193 83..00+00004835 71....+00000030 32..10+00090612
+110380+00000380 21.322+26382130 22.322+09703980 31..00+00089058 51..1.+0000+000 87..10+00001500 81..00+00425021 82..00+00452121 83..00+00004180 71....+00000030 32..10+00088962
+110381+00000381 21.322+26245240 22.322+09740960 31..00+00087812 51..1.+0000+000 87..10+00001500 81..00+00427084 82..00+00451200 83..00+00003613 71....+00000030 32..10+00087739
+110382+00000382 21.322+26213310 22.322+09771780 31..00+00085047 51..1.+0000+000 87..10+00001500 81..00+00429605 82..00+00452374 83..00+00003089 71....+00000030 32..10+00084992
+110383+00000383 21.322+26225930 22.322+09776000 31..00+00082543 51..1.+0000+000 87..10+00001500 81..00+00431584 82..00+00453911 83..00+00002944 71....+00000030 32..10+00082492
+110384+00000001 21.322+16207840 22.322+10078240 31..00+00036418 51..1.+0000+000 87..10+00001300 81..00+00520431 82..00+00469857 83..00-00000357 71....+00000024 32..10+00036415
+110385+00000002 21.322+16147820 22.322+10115310 31..00+00031549 51..1.+0000+000 87..10+00001300 81..00+00517944 82..00+00474057 83..00-00000481 71....+00000024 32..10+00031544
+110386+00000003 21.322+15975450 22.322+10165950 31..00+00026754 51..1.+0000+000 87..10+00001300 81..00+00515803 82..00+00478424 83..00-00000607 71....+00000024 32..10+00026745
+110387+00000004 21.322+15731070 22.322+10205390 31..00+00021835 51..1.+0000+000 87..10+00001300 81..00+00513562 82..00+00482901 83..00-00000614 71....+00000024 32..10+00021824
+110388+00000005 21.322+15341840 22.322+10230030 31..00+00017340 51..1.+0000+000 87..10+00001300 81..00+00511578 82..00+00487107 83..00-00000536 71....+00000024 32..10+00017329
+110389+00000006 21.322+14798680 22.322+10243290 31..00+00013388 51..1.+0000+000 87..10+00001300 81..00+00509754 82..00+00490844 83..00-00000421 71....+00000024 32..10+00013378
+110390+00000007 21.322+14045100 22.322+10242510 31..00+00009938 51..1.+0000+000 87..10+00001300 81..00+00507993 82..00+00494106 83..00-00000288 71....+00000024 32..10+00009931
+110391+00000008 21.322+12341710 22.322+10155320 31..00+00006786 51..1.+0000+000 87..10+00001300 81..00+00506331 82..00+00497560 83..00-00000076 71....+00000024 32..10+00006784
+110392+00000009 21.322+08828290 22.322+10092240 31..00+00004460 51..1.+0000+000 87..10+00001300 81..00+00504384 82..00+00500816 83..00+00000025 71....+00000024 32..10+00004459
+110393+00000010 21.322+03623460 22.322+09972450 31..00+00004593 51..1.+0000+000 87..10+00001300 81..00+00502476 82..00+00503869 83..00+00000110 71....+00000024 32..10+00004593
+110394+00000011 21.322+00405910 22.322+09887210 31..00+00007341 51..1.+0000+000 87..10+00001300 81..00+00500468 82..00+00507325 83..00+00000220 71....+00000024 32..10+00007340
+110395+00000012 21.322+39103380 22.322+09820120 31..00+00010983 51..1.+0000+000 87..10+00001300 81..00+00498459 82..00+00510870 83..00+00000400 71....+00000024 32..10+00010979
+110396+00000013 21.322+36808610 22.322+09395050 31..00+00013758 51..1.+0000+000 87..10+00002150 81..00+00493418 82..00+00512011 83..00+00000545 71....+00000024 32..10+00013696
+110397+00000014 21.322+35839510 22.322+09826110 31..00+00018394 51..1.+0000+000 87..10+00001300 81..00+00488821 82..00+00514598 83..00+00000592 71....+00000024 32..10+00018387
+110398+00000015 21.322+35255050 22.322+09849120 31..00+00022334 51..1.+0000+000 87..10+00001300 81..00+00484857 82..00+00516408 83..00+00000619 71....+00000024 32..10+00022327
+110399+00000016 21.322+28226840 22.322+09790620 31..00+00056666 51..1.+0000+000 87..10+00001300 81..00+00445547 82..00+00484429 83..00+00001954 71....+00000025 32..10+00056636
+110400+00000017 21.322+27674150 22.322+09794870 31..00+00059639 51..1.+0000+000 87..10+00001300 81..00+00444326 82..00+00478704 83..00+00002012 71....+00000025 32..10+00059609
+110401+00000018 21.322+27220100 22.322+09798550 31..00+00062790 51..1.+0000+000 87..10+00001300 81..00+00443131 82..00+00473458 83..00+00002077 71....+00000025 32..10+00062758
+110402+00000019 21.322+26762150 22.322+09794730 31..00+00066464 51..1.+0000+000 87..10+00001300 81..00+00441978 82..00+00467652 83..00+00002233 71....+00000025 32..10+00066430
+110403+00000020 21.322+26408220 22.322+09796290 31..00+00070022 51..1.+0000+000 87..10+00001300 81..00+00440861 82..00+00462576 83..00+00002331 71....+00000025 32..10+00069986
+110404+00000021 21.322+26031810 22.322+09796000 31..00+00074023 51..1.+0000+000 87..10+00001300 81..00+00439928 82..00+00456812 83..00+00002462 71....+00000025 32..10+00073985
+110405+00000022 21.322+25670920 22.322+09805910 31..00+00076873 51..1.+0000+000 87..10+00001300 81..00+00440254 82..00+00451685 83..00+00002434 71....+00000025 32..10+00076837
+110406+00000023 21.322+25288340 22.322+09818680 31..00+00079695 51..1.+0000+000 87..10+00001300 81..00+00441178 82..00+00446279 83..00+00002360 71....+00000025 32..10+00079662
+110407+00000024 21.322+24890700 22.322+09814540 31..00+00082220 51..1.+0000+000 87..10+00001300 81..00+00442893 82..00+00440897 83..00+00002485 71....+00000025 32..10+00082185
+110408+00000025 21.322+24473850 22.322+09810290 31..00+00084978 51..1.+0000+000 87..10+00001300 81..00+00445102 82..00+00435185 83..00+00002622 71....+00000025 32..10+00084940
+110409+00000026 21.322+24085350 22.322+09816620 31..00+00087594 51..1.+0000+000 87..10+00001300 81..00+00447590 82..00+00429861 83..00+00002613 71....+00000025 32..10+00087558
+110410+00000027 21.322+23755660 22.322+09823160 31..00+00089561 51..1.+0000+000 87..10+00001300 81..00+00450196 82..00+00425606 83..00+00002578 71....+00000025 32..10+00089526
+110411+00000028 21.322+23477000 22.322+09807230 31..00+00091691 51..1.+0000+000 87..10+00001700 81..00+00452396 82..00+00421684 83..00+00002467 71....+00000025 32..10+00091649
+110412+00000029 21.322+23128560 22.322+09815980 31..00+00093274 51..1.+0000+000 87..10+00001700 81..00+00456003 82..00+00417799 83..00+00002386 71....+00000025 32..10+00093235
+110413+00000030 21.322+22713740 22.322+09802670 31..00+00094710 51..1.+0000+000 87..10+00002150 81..00+00460858 82..00+00413807 83..00+00002176 71....+00000025 32..10+00094664
+110414+00000031 21.322+22362930 22.322+09814320 31..00+00096396 51..1.+0000+000 87..10+00002150 81..00+00465052 82..00+00410207 83..00+00002052 71....+00000025 32..10+00096355
+110415+00000032 21.322+21992730 22.322+09832390 31..00+00098707 51..1.+0000+000 87..10+00002150 81..00+00469616 82..00+00406122 83..00+00001839 71....+00000025 32..10+00098672
+110416+00000033 21.322+21711570 22.322+09849570 31..00+00101619 51..1.+0000+000 87..10+00002150 81..00+00473015 82..00+00402059 83..00+00001642 71....+00000025 32..10+00101591
+110417+00000034 21.322+21424510 22.322+09861410 31..00+00104563 51..1.+0000+000 87..10+00002150 81..00+00476803 82..00+00398068 83..00+00001517 71....+00000025 32..10+00104538
+110418+00000035 21.322+21106640 22.322+09877500 31..00+00108250 51..1.+0000+000 87..10+00002150 81..00+00481281 82..00+00393401 83..00+00001324 71....+00000025 32..10+00108230
+110419+00000036 21.322+20949200 22.322+09916640 31..00+00111322 51..1.+0000+000 87..10+00001600 81..00+00483465 82..00+00389922 83..00+00001248 71....+00000025 32..10+00111313
+110420+00000300 21.322+05060390 22.322+09267840 31..00+00038140 51..1.+0000+000 87..10+00001300 81..00+00527044 82..00+00526535 83..00+00004467 71....+00000050 32..10+00037888
+110421+00000301 21.322+06253040 22.322+09223910 31..00+00034869 51..1.+0000+000 87..10+00001720 81..00+00528786 82..00+00519214 83..00+00003910 71....+00000050 32..10+00034610
+110422+00000302 21.322+07300000 22.322+09527900 31..00+00016209 51..1.+0000+000 87..10+00001300 81..00+00514733 82..00+00506652 83..00+00001291 71....+00000050 32..10+00016165
+110423+00000303 21.322+09298900 22.322+09654480 31..00+00015929 51..1.+0000+000 87..10+00001300 81..00+00515809 82..00+00501748 83..00+00000954 71....+00000050 32..10+00015906
+110424+00000304 21.322+11275300 22.322+09835940 31..00+00017170 51..1.+0000+000 87..10+00001300 81..00+00516821 82..00+00496585 83..00+00000532 71....+00000050 32..10+00017164
+110425+00000305 21.322+12344050 22.322+09832400 31..00+00020837 51..1.+0000+000 87..10+00001300 81..00+00519434 82..00+00492503 83..00+00000639 71....+00000050 32..10+00020830
+110426+00000306 21.322+12878460 22.322+09944030 31..00+00020598 51..1.+0000+000 87..10+00001300 81..00+00518527 82..00+00491001 83..00+00000271 71....+00000050 32..10+00020597
+110427+00000307 21.322+13149860 22.322+09891510 31..00+00023157 51..1.+0000+000 87..10+00001300 81..00+00520377 82..00+00489006 83..00+00000485 71....+00000050 32..10+00023154
+110428+00000308 21.322+13673600 22.322+09956540 31..00+00023544 51..1.+0000+000 87..10+00001300 81..00+00519731 82..00+00487156 83..00+00000251 71....+00000050 32..10+00023544
+110429+00000309 21.322+14903240 22.322+10049470 31..00+00029957 51..1.+0000+000 87..10+00001300 81..00+00521502 82..00+00479142 83..00-00000143 71....+00000050 32..10+00029956
+110430+00000310 21.322+15161020 22.322+10014060 31..00+00032595 51..1.+0000+000 87..10+00001300 81..00+00522458 82..00+00476377 83..00+00000018 71....+00000050 32..10+00032595
+110431+00000311 21.322+03192490 22.322+09366290 31..00+00031433 51..1.+0000+000 87..10+00001300 81..00+00515036 82..00+00527426 83..00+00003214 71....+00000050 32..10+00031277
+110432+00000312 21.322+02312470 22.322+09385590 31..00+00031731 51..1.+0000+000 87..10+00001300 81..00+00511222 82..00+00529522 83..00+00003148 71....+00000050 32..10+00031583
+110433+00000313 21.322+01484180 22.322+09383280 31..00+00033557 51..1.+0000+000 87..10+00001300 81..00+00507716 82..00+00532496 83..00+00003336 71....+00000050 32..10+00033400
+110434+00000314 21.322+01074350 22.322+09421030 31..00+00033607 51..1.+0000+000 87..10+00001300 81..00+00505621 82..00+00532992 83..00+00003142 71....+00000050 32..10+00033468
+110435+00000315 21.322+00566330 22.322+09443600 31..00+00033780 51..1.+0000+000 87..10+00001300 81..00+00502990 82..00+00533518 83..00+00003039 71....+00000050 32..10+00033651
+110436+00000316 21.322+39981550 22.322+09432270 31..00+00033116 51..1.+0000+000 87..10+00001580 81..00+00499904 82..00+00532984 83..00+00002759 71....+00000050 32..10+00032984
+110437+00000317 21.322+39397270 22.322+09508210 31..00+00034150 51..1.+0000+000 87..10+00001300 81..00+00496781 82..00+00533896 83..00+00002726 71....+00000050 32..10+00034048
+110438+00000318 21.322+39010910 22.322+09541910 31..00+00033479 51..1.+0000+000 87..10+00001300 81..00+00494833 82..00+00532990 83..00+00002497 71....+00000050 32..10+00033392
+110439+00000319 21.322+38702520 22.322+09555400 31..00+00032424 51..1.+0000+000 87..10+00001450 81..00+00493453 82..00+00531676 83..00+00002203 71....+00000050 32..10+00032345
+110440+00000320 21.322+08704950 22.322+30279660 31..00+00060678 51..1.+0000+000 87..10+00001750 81..00+00440630 82..00+00487753 83..00+00002305 71....+00000051 32..10+00060620
+110441+00000321 21.322+08423970 22.322+30326530 31..00+00062339 51..1.+0000+000 87..10+00001750 81..00+00439642 82..00+00484745 83..00+00002836 71....+00000051 32..10+00062256
+110442+00000322 21.322+08424000 22.322+30326730 31..00+00062340 51..1.+0000+000 87..10+00002150 81..00+00439641 82..00+00484745 83..00+00002438 71....+00000051 32..10+00062257
+110443+00000323 21.322+08258650 22.322+30326970 31..00+00065172 51..1.+0000+000 87..10+00002000 81..00+00437334 82..00+00482418 83..00+00002736 71....+00000051 32..10+00065086
+110444+00000324 21.322+07986080 22.322+30332140 31..00+00066715 51..1.+0000+000 87..10+00002150 81..00+00436682 82..00+00479274 83..00+00002719 71....+00000051 32..10+00066624
+110445+00000325 21.322+03634630 22.322+30245770 31..00+00109833 51..1.+0000+000 87..10+00002150 81..00+00440689 82..00+00407655 83..00+00003480 71....+00000051 32..10+00109751
+110446+00000326 21.322+03359460 22.322+30233450 31..00+00106976 51..1.+0000+000 87..10+00002150 81..00+00446168 82..00+00407638 83..00+00003163 71....+00000051 32..10+00106904
+110447+00000327 21.322+03231540 22.322+30227110 31..00+00109075 51..1.+0000+000 87..10+00002150 81..00+00447014 82..00+00404739 83..00+00003131 71....+00000051 32..10+00109005
+110448+00000328 21.322+00206680 22.322+30159340 31..00+00084654 51..1.+0000+000 87..10+00001850 81..00+00497253 82..00+00415417 83..00+00001659 71....+00000051 32..10+00084627
+110449+00000329 21.322+26324030 22.322+09462600 31..00+00112340 51..1.+0000+000 87..10+00001600 81..00+00406209 82..00+00438896 83..00+00009263 71....+00000052 32..10+00111940
+110450+00000330 21.322+26201660 22.322+09472930 31..00+00113496 51..1.+0000+000 87..10+00001450 81..00+00406435 82..00+00436449 83..00+00009327 71....+00000052 32..10+00113107
+110451+00000331 21.322+25987580 22.322+09506070 31..00+00114363 51..1.+0000+000 87..10+00001450 81..00+00407888 82..00+00432802 83..00+00008805 71....+00000052 32..10+00114019
+110452+00000332 21.322+25868240 22.322+09622050 31..00+00101314 51..1.+0000+000 87..10+00001450 81..00+00419427 82..00+00438873 83..00+00005952 71....+00000052 32..10+00101136
+110453+00000333 21.322+25560760 22.322+09676710 31..00+00103758 51..1.+0000+000 87..10+00001450 81..00+00420565 82..00+00433457 83..00+00005207 71....+00000052 32..10+00103624
+110454+00000334 21.322+25413750 22.322+09680430 31..00+00106747 51..1.+0000+000 87..10+00001450 81..00+00419877 82..00+00429669 83..00+00005297 71....+00000052 32..10+00106612
+110455+00000335 21.322+25360830 22.322+09722420 31..00+00102017 51..1.+0000+000 87..10+00001450 81..00+00423965 82..00+00432130 83..00+00004387 71....+00000052 32..10+00101920
+110456+00000336 21.322+25214790 22.322+09695140 31..00+00109258 51..1.+0000+000 87..10+00001450 81..00+00420272 82..00+00425478 83..00+00005171 71....+00000052 32..10+00109133
+110457+00000337 21.322+25028240 22.322+09704780 31..00+00112170 51..1.+0000+000 87..10+00001450 81..00+00420418 82..00+00421121 83..00+00005141 71....+00000052 32..10+00112050
+110458+00000338 21.322+24899790 22.322+09721210 31..00+00111990 51..1.+0000+000 87..10+00001550 81..00+00422142 82..00+00419652 83..00+00004744 71....+00000052 32..10+00111883
+110459+00000339 21.322+24661010 22.322+09737480 31..00+00112243 51..1.+0000+000 87..10+00001550 81..00+00425033 82..00+00416591 83..00+00004468 71....+00000052 32..10+00112148
+110460+00000340 21.322+20892180 22.322+09906620 31..00+00106579 51..1.+0000+000 87..10+00001600 81..00+00485114 82..00+00394477 83..00+00001354 71....+00000052 32..10+00106568
+110461+00000341 21.322+20793090 22.322+09904970 31..00+00086796 51..1.+0000+000 87..10+00001300 81..00+00489216 82..00+00413887 83..00+00001386 71....+00000052 32..10+00086786
+110462+00000342 21.322+15144140 22.322+10093010 31..00+00023967 51..1.+0000+000 87..10+00001300 81..00+00516558 82..00+00482675 83..00-00000260 71....+00000060 32..10+00023965
+110463+00000343 21.322+14747150 22.322+10100610 31..00+00020277 51..1.+0000+000 87..10+00001300 81..00+00514894 82..00+00486244 83..00-00000230 71....+00000060 32..10+00020274
+110464+00000344 21.322+14107980 22.322+10154420 31..00+00019294 51..1.+0000+000 87..10+00001300 81..00+00515410 82..00+00488399 83..00-00000378 71....+00000060 32..10+00019289
+110465+00000345 21.322+14320580 22.322+10182820 31..00+00017972 51..1.+0000+000 87..10+00001300 81..00+00513984 82..00+00488723 83..00-00000426 71....+00000060 32..10+00017964
+110466+00000346 21.322+14862050 22.322+10199570 31..00+00018176 51..1.+0000+000 87..10+00001300 81..00+00513122 82..00+00487435 83..00-00000480 71....+00000060 32..10+00018167
+110467+00000347 21.322+15189490 22.322+10187980 31..00+00019652 51..1.+0000+000 87..10+00001300 81..00+00513471 82..00+00485703 83..00-00000490 71....+00000060 32..10+00019644
+110468+00000348 21.322+15321570 22.322+10182410 31..00+00021181 51..1.+0000+000 87..10+00001300 81..00+00514196 82..00+00484292 83..00-00000517 71....+00000060 32..10+00021173
+110469+00000349 21.322+15303990 22.322+10173590 31..00+00022305 51..1.+0000+000 87..10+00001300 81..00+00514995 82..00+00483500 83..00-00000518 71....+00000060 32..10+00022296
+110470+00000350 21.322+15506270 22.322+10183310 31..00+00022945 51..1.+0000+000 87..10+00001300 81..00+00514878 82..00+00482545 83..00-00000571 71....+00000060 32..10+00022935
+110471+00000351 21.322+15598150 22.322+10186790 31..00+00023680 51..1.+0000+000 87..10+00001300 81..00+00515093 82..00+00481766 83..00-00000605 71....+00000060 32..10+00023670
+110472+00000352 21.322+15535500 22.322+10170180 31..00+00024914 51..1.+0000+000 87..10+00001300 81..00+00516069 82..00+00480972 83..00-00000576 71....+00000060 32..10+00024905
+110473+00000353 21.322+15257180 22.322+10139120 31..00+00025527 51..1.+0000+000 87..10+00001300 81..00+00517302 82..00+00481240 83..00-00000468 71....+00000060 32..10+00025521
+110474+00000354 21.322+14917880 22.322+10139360 31..00+00025130 51..1.+0000+000 87..10+00001300 81..00+00517993 82..00+00482465 83..00-00000460 71....+00000060 32..10+00025124
+110475+00000355 21.322+14747170 22.322+10132080 31..00+00023971 51..1.+0000+000 87..10+00001300 81..00+00517606 82..00+00483740 83..00-00000407 71....+00000060 32..10+00023965
+110476+00000356 21.322+14590340 22.322+10119040 31..00+00022413 51..1.+0000+000 87..10+00001300 81..00+00516831 82..00+00485206 83..00-00000329 71....+00000060 32..10+00022409
+110477+00000357 21.322+14329460 22.322+10128120 31..00+00020816 51..1.+0000+000 87..10+00001300 81..00+00516182 82..00+00486913 83..00-00000329 71....+00000060 32..10+00020811
+110478+00000358 21.322+31885050 22.322+09743100 31..00+00029363 51..1.+0000+000 87..10+00001770 81..00+00471938 82..00+00508561 83..00+00000805 71....+00000060 32..10+00029339
+110479+00000359 21.322+31765260 22.322+09736790 31..00+00029500 51..1.+0000+000 87..10+00001720 81..00+00471651 82..00+00508069 83..00+00000889 71....+00000060 32..10+00029474
+110480+00000360 21.322+31761050 22.322+09824840 31..00+00028902 51..1.+0000+000 87..10+00001570 81..00+00472207 82..00+00507891 83..00+00000615 71....+00000060 32..10+00028892
+110481+00000361 21.322+31922760 22.322+09872300 31..00+00028461 51..1.+0000+000 87..10+00001390 81..00+00472833 82..00+00508464 83..00+00000571 71....+00000060 32..10+00028455
+110482+00000362 21.322+32042350 22.322+09857450 31..00+00028936 51..1.+0000+000 87..10+00001370 81..00+00472547 82..00+00509122 83..00+00000668 71....+00000060 32..10+00028929
+110483+00000363 21.322+31998520 22.322+09842050 31..00+00030030 51..1.+0000+000 87..10+00001300 81..00+00471446 82..00+00509270 83..00+00000835 71....+00000060 32..10+00030021
+110484+00000364 21.322+30686750 22.322+09784520 31..00+00042891 51..1.+0000+000 87..10+00001300 81..00+00457383 82..00+00504615 83..00+00001542 71....+00000060 32..10+00042867
+110485+00000365 21.322+30711850 22.322+09833060 31..00+00041468 51..1.+0000+000 87..10+00001300 81..00+00458806 82..00+00504626 83..00+00001177 71....+00000060 32..10+00041453
+110486+00000366 21.322+30849770 22.322+09816910 31..00+00041742 51..1.+0000+000 87..10+00001300 81..00+00458647 82..00+00505553 83..00+00001290 71....+00000060 32..10+00041724
+110487+00000367 21.322+30928890 22.322+09813340 31..00+00042668 51..1.+0000+000 87..10+00001300 81..00+00457803 82..00+00506201 83..00+00001341 71....+00000060 32..10+00042650
+110488+00000368 21.322+30873510 22.322+09817890 31..00+00043643 51..1.+0000+000 87..10+00001300 81..00+00456785 82..00+00505967 83..00+00001338 71....+00000060 32..10+00043625
+110489+00000369 21.322+30714530 22.322+09826340 31..00+00044343 51..1.+0000+000 87..10+00001300 81..00+00455953 82..00+00504965 83..00+00001300 71....+00000060 32..10+00044326
+110490+00000370 21.322+30483210 22.322+09844140 31..00+00043881 51..1.+0000+000 87..10+00001300 81..00+00456258 82..00+00503326 83..00+00001164 71....+00000060 32..10+00043868
+110491+00000371 21.322+30502810 22.322+09843800 31..00+00042599 51..1.+0000+000 87..10+00001300 81..00+00457547 82..00+00503360 83..00+00001135 71....+00000060 32..10+00042586
+110492+00000372 21.322+30579810 22.322+09835960 31..00+00041410 51..1.+0000+000 87..10+00001300 81..00+00458776 82..00+00503765 83..00+00001157 71....+00000060 32..10+00041396
+110493+00000584 21.322+17657970 22.322+10073440 31..00+00046177 51..1.+0000+000 87..10+00002150 81..00+00516606 82..00+00456915 83..00-00001233 71....+00000070 32..10+00046174
+110494+00000800 21.322+30380470 22.322+09886300 31..00+00058943 51..1.+0000+000 87..10+00001600 81..00+00465284 82..00+00448849 83..00+00001207 71....+00000070 32..10+00058934
+110495+00000801 21.322+30322120 22.322+09882390 31..00+00059919 51..1.+0000+000 87..10+00001600 81..00+00464281 82..00+00448359 83..00+00001261 71....+00000070 32..10+00059909
+110496+00STAZ02 21.322+37624260 22.322+09451230 31..00+00020555 51..1.+0000+000 87..10+00002150 71....+00000070 32..10+00020479
+110497+00STAZ03 21.322+04023910 22.322+09799050 31..00+00020896 51..1.+0000+000 87..10+00002150 71....+00000070 32..10+00020885
+110498+STAZLIB3 25.342+20904010 84..40+00519659 85..40+00465244 86..40-00000588 87..10+00002150 88..10+00001350
+110499+STAZLIB3 25.342+20904010 84..40+00519659 85..40+00465244 86..40-00000588 87..10+00002150 88..10+00001350
+110500+00000850 21.322+28199190 22.322+09784250 31..00+00072875 51..1.+0000+000 87..10+00001300 81..00+00449720 82..00+00444915 83..00+00001932 71....+00000070 32..10+00072833
+110501+00000851 21.322+27483760 22.322+09903080 31..00+00040636 51..1.+0000+000 87..10+00001300 81..00+00482161 82..00+00449600 83..00+00000081 71....+00000070 32..10+00040631
+110502+00000852 21.322+21773190 22.322+10459160 31..00+00009048 51..1.+0000+000 87..10+00001300 81..00+00517177 82..00+00456567 83..00-00001190 71....+0000MK10 32..10+00009025
+110503+00000853 21.322+22024920 22.322+10411140 31..00+00008332 51..1.+0000+000 87..10+00001300 81..00+00517059 82..00+00457347 83..00-00001075 71....+0000MK11 32..10+00008314
+110504+00000854 21.322+21557420 22.322+10400910 31..00+00008085 51..1.+0000+000 87..10+00001300 81..00+00517704 82..00+00457415 83..00-00001046 71....+0000MK12 32..10+00008069
+110505+00000855 21.322+21346530 22.322+10422860 31..00+00008811 51..1.+0000+000 87..10+00001300 81..00+00517813 82..00+00456649 83..00-00001122 71....+0000MK14 32..10+00008791
+110506+00000856 21.322+21769860 22.322+10457420 31..00+00009043 51..1.+0000+000 87..10+00001300 81..00+00517183 82..00+00456570 83..00-00001187 71....+0000MK10 32..10+00009020
+110507+00000857 21.322+22024860 22.322+10412030 31..00+00008340 51..1.+0000+000 87..10+00001300 81..00+00517056 82..00+00457339 83..00-00001077 71....+0000MK11 32..10+00008322
+110508+00000858 21.322+21556490 22.322+10400620 31..00+00008093 51..1.+0000+000 87..10+00001300 81..00+00517704 82..00+00457407 83..00-00001047 71....+0000MK12 32..10+00008077
+110509+00000859 21.322+21344410 22.322+10420980 31..00+00008813 51..1.+0000+000 87..10+00001300 81..00+00517815 82..00+00456645 83..00-00001120 71....+0000MK13 32..10+00008794
+110510+00000860 21.322+20964260 22.322+10461840 31..00+00007849 51..1.+0000+000 87..10+00001300 81..00+00518478 82..00+00457506 83..00-00001106 71....+0000MK14 32..10+00007828
+110511+00000861 21.322+20809900 22.322+10441050 31..00+00008620 51..1.+0000+000 87..10+00001300 81..00+00518568 82..00+00456714 83..00-00001134 71....+0000MK15 32..10+00008599
+110512+00000862 21.322+20463620 22.322+10455450 31..00+00007707 51..1.+0000+000 87..10+00001300 81..00+00519099 82..00+00457577 83..00-00001089 71....+0000MK16 32..10+00007688
+110513+00000863 21.322+20322280 22.322+10424630 31..00+00008457 51..1.+0000+000 87..10+00001300 81..00+00519232 82..00+00456816 83..00-00001101 71....+0000MK17 32..10+00008439
+110514+00000864 21.322+19876760 22.322+10418280 31..00+00008342 51..1.+0000+000 87..10+00001300 81..00+00519820 82..00+00456921 83..00-00001085 71....+0000MK18 32..10+00008324
+110515+00000865 21.322+19876790 22.322+10418410 31..00+00008351 51..1.+0000+000 87..10+00001300 81..00+00519820 82..00+00456913 83..00-00001086 71....+0000MK18 32..10+00008333
+110516+00000866 21.322+19955620 22.322+10476850 31..00+00007624 51..1.+0000+000 87..10+00001300 81..00+00519712 82..00+00457641 83..00-00001108 71....+0000MK19 32..10+00007603
+110517+00000867 21.322+19188620 22.322+10497850 31..00+00007584 51..1.+0000+000 87..10+00001300 81..00+00520620 82..00+00457745 83..00-00001130 71....+0000MK20 32..10+00007561
+110518+00000868 21.322+19210220 22.322+10439690 31..00+00008284 51..1.+0000+000 87..10+00001300 81..00+00520681 82..00+00457043 83..00-00001109 71....+0000MK21 32..10+00008264
+110519+00000869 21.322+18586250 22.322+10589150 31..00+00008323 51..1.+0000+000 87..10+00001300 81..00+00521484 82..00+00457160 83..00-00001307 71....+0000MK22 32..10+00008288
+110520+00000870 21.322+18534500 22.322+10653840 31..00+00007608 51..1.+0000+000 87..10+00001300 81..00+00521386 82..00+00457875 83..00-00001318 71....+0000MK23 32..10+00007568
+110521+00000871 21.322+17903450 22.322+10133210 31..00+00007689 51..1.+0000+000 87..10+00001900 81..00+00522145 82..00+00457970 83..00-00001298 71....+0000MK24 32..10+00007687
+110522+00000872 21.322+18056270 22.322+10154800 31..00+00008403 51..1.+0000+000 87..10+00001900 81..00+00522184 82..00+00457232 83..00-00001342 71....+0000MK25 32..10+00008400
+110523+00000873 21.322+17461600 22.322+10178720 31..00+00007815 51..1.+0000+000 87..10+00001900 81..00+00522692 82..00+00458045 83..00-00001357 71....+0000MK26 32..10+00007812
+110524+00000874 21.322+17582860 22.322+10201970 31..00+00008549 51..1.+0000+000 87..10+00001900 81..00+00522825 82..00+00457308 83..00-00001409 71....+0000MK27 32..10+00008544
+110525+00STAZ03 21.322+02737840 22.322+10352010 31..00+00020095 51..1.+0000+000 87..10+00001300 71....+0000MK27 32..10+00020065
+110526+STAZION1 21.322+08382400 22.322+10047050 31..00+00060098 51..1.+0000+000 87..10+00001300 71....+0000MK27 32..10+00060097
+110527+STAZLIB4 25.342+28951540 84..40+00524441 85..40+00445069 86..40+00000388 87..10+00001300 88..10+00001330
+110528+STAZION1 81..00+00500000 82..00+00500000 83..00+00000000
+110529+STAZION1 21.322+37333780 22.322+10039750 31..00+00060114 51..1.+0000+000 87..10+00001300 71....+0000000/ 32..10+00060113
+110530+00STAZ03 21.322+31691030 22.322+10350670 31..00+00020107 51..1.+0000+000 87..10+00001300 71....+0000000/ 32..10+00020076
+110531+STAZLIB4 25.342+39999650 84..40+00524452 85..40+00445059 86..40+00000352 87..10+00001300 88..10+00001330
+110532+00000900 21.322+28381230 22.322+11361090 31..00+00009288 51..1.+0000+000 87..10+00001300 81..00+00515667 82..00+00442776 83..00-00001589 71....+00000080 32..10+00009077
+110533+00000901 21.322+28345930 22.322+11418710 31..00+00009573 51..1.+0000+000 87..10+00001300 81..00+00515429 82..00+00442660 83..00-00001734 71....+00000080 32..10+00009336
+110534+00000902 21.322+28399580 22.322+11418300 31..00+00009740 51..1.+0000+000 87..10+00001300 81..00+00515251 82..00+00442696 83..00-00001770 71....+00000080 32..10+00009499
+110535+00000903 21.322+28531670 22.322+11439560 31..00+00009716 51..1.+0000+000 87..10+00001300 81..00+00515234 82..00+00442894 83..00-00001796 71....+00000080 32..10+00009469
+110536+00000904 21.322+28622410 22.322+11280400 31..00+00009458 51..1.+0000+000 87..10+00001500 81..00+00515401 82..00+00443069 83..00-00001707 71....+00000080 32..10+00009267
+110537+00000905 21.322+28446540 22.322+11194350 31..00+00009477 51..1.+0000+000 87..10+00001500 81..00+00515417 82..00+00442810 83..00-00001585 71....+00000080 32..10+00009310
+110538+00000906 21.322+28345210 22.322+11261000 31..00+00009329 51..1.+0000+000 87..10+00001500 81..00+00515613 82..00+00442708 83..00-00001654 71....+00000080 32..10+00009146
+110539+00000907 21.322+28372750 22.322+11359860 31..00+00009691 51..1.+0000+000 87..10+00001500 81..00+00515289 82..00+00442664 83..00-00001872 71....+00000080 32..10+00009471
+110540+00000908 21.322+28380860 22.322+11353650 31..00+00009778 51..1.+0000+000 87..10+00001500 81..00+00515202 82..00+00442654 83..00-00001881 71....+00000080 32..10+00009557
+110541+00000909 21.322+28439560 22.322+11356470 31..00+00009800 51..1.+0000+000 87..10+00001500 81..00+00515159 82..00+00442735 83..00-00001890 71....+00000080 32..10+00009579
+110542+00000910 21.322+28448570 22.322+11332610 31..00+00009721 51..1.+0000+000 87..10+00001500 81..00+00515224 82..00+00442765 83..00-00001838 71....+00000080 32..10+00009509
+110543+00000911 21.322+28475790 22.322+11316850 31..00+00009794 51..1.+0000+000 87..10+00001500 81..00+00515140 82..00+00442786 83..00-00001829 71....+00000080 32..10+00009585
+110544+00000912 21.322+28541530 22.322+11332570 31..00+00009818 51..1.+0000+000 87..10+00001500 81..00+00515099 82..00+00442878 83..00-00001858 71....+00000080 32..10+00009603
+110545+00000913 21.322+28569460 22.322+11159050 31..00+00009669 51..1.+0000+000 87..10+00001800 81..00+00515182 82..00+00442940 83..00-00001869 71....+00000080 32..10+00009509
+110546+00000914 21.322+28484200 22.322+11046190 31..00+00009607 51..1.+0000+000 87..10+00001800 81..00+00515242 82..00+00442824 83..00-00001690 71....+00000080 32..10+00009477
+110547+00000915 21.322+28382180 22.322+11160530 31..00+00009722 51..1.+0000+000 87..10+00001800 81..00+00515198 82..00+00442655 83..00-00001880 71....+00000080 32..10+00009560
+110548+00000916 21.322+28340430 22.322+10980190 31..00+00009808 51..1.+0000+000 87..10+00001800 81..00+00515088 82..00+00442561 83..00-00001622 71....+00000080 32..10+00009692
+110549+00000917 21.322+28331050 22.322+11320050 31..00+00010109 51..1.+0000+000 87..10+00001800 81..00+00514897 82..00+00442495 83..00-00002199 71....+00000080 32..10+00009892
+110550+00000918 21.322+28437020 22.322+11249810 31..00+00010116 51..1.+0000+000 87..10+00001800 81..00+00514828 82..00+00442648 83..00-00002091 71....+00000080 32..10+00009921
+110551+00000919 21.322+28588540 22.322+11139420 31..00+00009849 51..1.+0000+000 87..10+00001800 81..00+00514997 82..00+00442928 83..00-00001871 71....+00000080 32..10+00009692
+110552+00000920 21.322+28432510 22.322+11249960 31..00+00009973 51..1.+0000+000 87..10+00001300 81..00+00514966 82..00+00442675 83..00-00001563 71....+00000080 32..10+00009781
+110553+00000921 21.322+28298860 22.322+11332460 31..00+00010166 51..1.+0000+000 87..10+00001800 81..00+00514860 82..00+00442433 83..00-00002230 71....+00000080 32..10+00009944
+110554+00000922 21.322+28300710 22.322+11403150 31..00+00010182 51..1.+0000+000 87..10+00001800 81..00+00514868 82..00+00442438 83..00-00002344 71....+00000080 32..10+00009936
+110555+00000923 21.322+28346380 22.322+11454900 31..00+00010262 51..1.+0000+000 87..10+00001800 81..00+00514792 82..00+00442492 83..00-00002443 71....+00000080 32..10+00009995
+110556+00000924 21.322+28583500 22.322+11180870 31..00+00010160 51..1.+0000+000 87..10+00002150 81..00+00514712 82..00+00442855 83..00-00002342 71....+00000080 32..10+00009986
+110557+00000925 21.322+28794890 22.322+11212310 31..00+00010111 51..1.+0000+000 87..10+00002150 81..00+00514701 82..00+00443191 83..00-00002382 71....+00000080 32..10+00009928
+110558+00000926 21.322+28815560 22.322+11185830 31..00+00009959 51..1.+0000+000 87..10+00002150 81..00+00514834 82..00+00443249 83..00-00002312 71....+00000080 32..10+00009787
+110559+00000927 21.322+28771720 22.322+11106160 31..00+00009863 51..1.+0000+000 87..10+00002150 81..00+00514917 82..00+00443196 83..00-00002173 71....+00000080 32..10+00009715
+110560+00000928 21.322+28625990 22.322+11055140 31..00+00010042 51..1.+0000+000 87..10+00002150 81..00+00514777 82..00+00442938 83..00-00002125 71....+00000080 32..10+00009904
+110561+00000929 21.322+28522100 22.322+11067760 31..00+00010119 51..1.+0000+000 87..10+00002150 81..00+00514743 82..00+00442764 83..00-00002157 71....+00000080 32..10+00009977
+110562+00000930 21.322+28413510 22.322+11206750 31..00+00010229 51..1.+0000+000 87..10+00002150 81..00+00514717 82..00+00442581 83..00-00002395 71....+00000080 32..10+00010046
+110563+00000931 21.322+28378340 22.322+11087230 31..00+00010063 51..1.+0000+000 87..10+00002150 81..00+00514855 82..00+00442560 83..00-00002178 71....+00000080 32..10+00009917
+110564+00000932 21.322+28421040 22.322+11033700 31..00+00010031 51..1.+0000+000 87..10+00002150 81..00+00514856 82..00+00442629 83..00-00002090 71....+00000080 32..10+00009899
+110565+00000933 21.322+28446330 22.322+11019170 31..00+00010065 51..1.+0000+000 87..10+00002150 81..00+00514810 82..00+00442658 83..00-00002072 71....+00000080 32..10+00009936
+110566+00000934 21.322+28466550 22.322+11025680 31..00+00010089 51..1.+0000+000 87..10+00002150 81..00+00514781 82..00+00442683 83..00-00002086 71....+00000080 32..10+00009959
+110567+00000935 21.322+28632580 22.322+10929650 31..00+00009765 51..1.+0000+000 87..10+00002150 81..00+00515013 82..00+00443000 83..00-00001889 71....+00000080 32..10+00009661
+110568+00000936 21.322+28604890 22.322+10912400 31..00+00009803 51..1.+0000+000 87..10+00002150 81..00+00514982 82..00+00442950 83..00-00001868 71....+00000080 32..10+00009702
+110569+00000937 21.322+28709030 22.322+11036420 31..00+00009962 51..1.+0000+000 87..10+00002150 81..00+00514823 82..00+00443079 83..00-00002083 71....+00000080 32..10+00009830
+110570+00000938 21.322+28819720 22.322+11019000 31..00+00009646 51..1.+0000+000 87..10+00002150 81..00+00515092 82..00+00443304 83..00-00002005 71....+00000080 32..10+00009523
+110571+00000939 21.322+28864590 22.322+11198730 31..00+00010264 51..1.+0000+000 87..10+00002150 81..00+00514529 82..00+00443270 83..00-00002389 71....+00000080 32..10+00010083
+110572+00000940 21.322+28972000 22.322+11175120 31..00+00010083 51..1.+0000+000 87..10+00002150 81..00+00514669 82..00+00443465 83..00-00002319 71....+00000080 32..10+00009911
+110573+00000941 21.322+28898790 22.322+11183690 31..00+00010066 51..1.+0000+000 87..10+00002150 81..00+00514707 82..00+00443356 83..00-00002329 71....+00000080 32..10+00009892
+110574+00000942 21.322+28922700 22.322+11173600 31..00+00009933 51..1.+0000+000 87..10+00002150 81..00+00514827 82..00+00443415 83..00-00002289 71....+00000080 32..10+00009764
+110575+00000943 21.322+28959950 22.322+11200170 31..00+00010036 51..1.+0000+000 87..10+00002150 81..00+00514724 82..00+00443456 83..00-00002349 71....+00000080 32..10+00009859
+110576+00000944 21.322+29044420 22.322+11203480 31..00+00009918 51..1.+0000+000 87..10+00002150 81..00+00514820 82..00+00443602 83..00-00002332 71....+00000080 32..10+00009742
+110577+00000945 21.322+29013050 22.322+11149750 31..00+00009831 51..1.+0000+000 87..10+00002150 81..00+00514896 82..00+00443566 83..00-00002234 71....+00000080 32..10+00009672
+110578+00000946 21.322+28089420 22.322+11233140 31..00+00010497 51..1.+0000+000 87..10+00002150 81..00+00514611 82..00+00442014 83..00-00002489 71....+00000080 32..10+00010301
+110579+00000947 21.322+28127290 22.322+11261730 31..00+00010591 51..1.+0000+000 87..10+00002150 81..00+00514514 82..00+00442048 83..00-00002553 71....+00000080 32..10+00010384
+110580+00000948 21.322+28233540 22.322+11283570 31..00+00010544 51..1.+0000+000 87..10+00002150 81..00+00514516 82..00+00442229 83..00-00002580 71....+00000080 32..10+00010331
+110581+00000949 21.322+28323190 22.322+11262560 31..00+00010176 51..1.+0000+000 87..10+00002150 81..00+00514819 82..00+00442461 83..00-00002473 71....+00000080 32..10+00009977
+110582+00000950 21.322+28246930 22.322+11175420 31..00+00010104 51..1.+0000+000 87..10+00002150 81..00+00514894 82..00+00442358 83..00-00002323 71....+00000080 32..10+00009932
+110583+00000951 21.322+28315170 22.322+11226210 31..00+00010240 51..1.+0000+000 87..10+00002150 81..00+00514751 82..00+00442430 83..00-00002428 71....+00000080 32..10+00010051
+110584+00000952 21.322+28434850 22.322+11202410 31..00+00010218 51..1.+0000+000 87..10+00002150 81..00+00514717 82..00+00442616 83..00-00002386 71....+00000080 32..10+00010036
+110585+00000953 21.322+28573250 22.322+11182730 31..00+00010372 51..1.+0000+000 87..10+00002150 81..00+00514514 82..00+00442794 83..00-00002384 71....+00000080 32..10+00010193
+110586+00000954 21.322+28482790 22.322+11155310 31..00+00010518 51..1.+0000+000 87..10+00002150 81..00+00514399 82..00+00442617 83..00-00002366 71....+00000080 32..10+00010345
+110587+00000955 21.322+28352110 22.322+11231750 31..00+00010514 51..1.+0000+000 87..10+00002150 81..00+00514477 82..00+00442418 83..00-00002490 71....+00000080 32..10+00010318
+110588+00000956 21.322+28577880 22.322+11169720 31..00+00010572 51..1.+0000+000 87..10+00002150 81..00+00514316 82..00+00442756 83..00-00002399 71....+00000080 32..10+00010394
+110589+00000957 21.322+28310910 22.322+11297900 31..00+00010466 51..1.+0000+000 87..10+00002150 81..00+00514561 82..00+00442371 83..00-00002587 71....+00000080 32..10+00010249
+110590+00000958 21.322+28233010 22.322+11277550 31..00+00010757 51..1.+0000+000 87..10+00002150 81..00+00514314 82..00+00442171 83..00-00002612 71....+00000080 32..10+00010541
+110591+00000959 21.322+28341800 22.322+11300100 31..00+00011135 51..1.+0000+000 87..10+00002150 81..00+00513916 82..00+00442251 83..00-00002726 71....+00000080 32..10+00010904
+110592+00000960 21.322+28480490 22.322+11330880 31..00+00011185 51..1.+0000+000 87..10+00002150 81..00+00513820 82..00+00442472 83..00-00002789 71....+00000080 32..10+00010942
+110593+00000961 21.322+28596780 22.322+11242680 31..00+00010988 51..1.+0000+000 87..10+00002150 81..00+00513933 82..00+00442702 83..00-00002599 71....+00000080 32..10+00010779
+110594+00000962 21.322+28458040 22.322+11067810 31..00+00010750 51..1.+0000+000 87..10+00002150 81..00+00514162 82..00+00442517 83..00-00002263 71....+00000080 32..10+00010600
+110595+00000963 21.322+28696940 22.322+11197160 31..00+00010303 51..1.+0000+000 87..10+00002150 81..00+00514541 82..00+00443002 83..00-00002394 71....+00000080 32..10+00010122
+110596+00000964 21.322+28697270 22.322+11198830 31..00+00010406 51..1.+0000+000 87..10+00002150 81..00+00514443 82..00+00442982 83..00-00002416 71....+00000080 32..10+00010222
+110597+00000965 21.322+28759500 22.322+11217710 31..00+00010471 51..1.+0000+000 87..10+00002150 81..00+00514366 82..00+00443068 83..00-00002459 71....+00000080 32..10+00010280
+110598+00000966 21.322+28783300 22.322+11222000 31..00+00010326 51..1.+0000+000 87..10+00002150 81..00+00514500 82..00+00443133 83..00-00002438 71....+00000080 32..10+00010137
+110599+00000967 21.322+28579980 22.322+11178050 31..00+00010497 51..1.+0000+000 87..10+00002150 81..00+00514390 82..00+00442777 83..00-00002399 71....+00000080 32..10+00010318
+110600+00000968 21.322+28688920 22.322+11192920 31..00+00010433 51..1.+0000+000 87..10+00002150 81..00+00514418 82..00+00442963 83..00-00002411 71....+00000080 32..10+00010250
+110601+00000969 21.322+28744370 22.322+11208080 31..00+00010495 51..1.+0000+000 87..10+00002150 81..00+00514345 82..00+00443039 83..00-00002448 71....+00000080 32..10+00010307
+110602+00000970 21.322+28677570 22.322+11173690 31..00+00010596 51..1.+0000+000 87..10+00002150 81..00+00514259 82..00+00442911 83..00-00002410 71....+00000080 32..10+00010416
+110603+00000971 21.322+28754180 22.322+11163910 31..00+00010561 51..1.+0000+000 87..10+00002150 81..00+00514265 82..00+00443040 83..00-00002388 71....+00000080 32..10+00010385
+110604+00000972 21.322+28800200 22.322+11189140 31..00+00010600 51..1.+0000+000 87..10+00002150 81..00+00514221 82..00+00443108 83..00-00002436 71....+00000080 32..10+00010415
+110605+00000973 21.322+28752940 22.322+11176530 31..00+00010727 51..1.+0000+000 87..10+00002150 81..00+00514109 82..00+00443007 83..00-00002439 71....+00000080 32..10+00010544
+110606+00000974 21.322+28709360 22.322+11168480 31..00+00010668 51..1.+0000+000 87..10+00002150 81..00+00514178 82..00+00442947 83..00-00002415 71....+00000080 32..10+00010489
+110607+00000975 21.322+28923620 22.322+11179230 31..00+00010634 51..1.+0000+000 87..10+00002150 81..00+00514149 82..00+00443300 83..00-00002426 71....+00000080 32..10+00010452
+110608+00000976 21.322+28850840 22.322+11190140 31..00+00010541 51..1.+0000+000 87..10+00002150 81..00+00514262 82..00+00443199 83..00-00002427 71....+00000080 32..10+00010358
+110609+00000977 21.322+28900290 22.322+11220800 31..00+00010441 51..1.+0000+000 87..10+00002150 81..00+00514354 82..00+00443297 83..00-00002458 71....+00000080 32..10+00010250
+110610+00000978 21.322+28916820 22.322+11125320 31..00+00010532 51..1.+0000+000 87..10+00002150 81..00+00514234 82..00+00443303 83..00-00002320 71....+00000080 32..10+00010368
+110611+00000979 21.322+29064110 22.322+11210710 31..00+00010626 51..1.+0000+000 87..10+00002150 81..00+00514130 82..00+00443531 83..00-00002477 71....+00000080 32..10+00010434
+110612+00000980 21.322+29293460 22.322+11157400 31..00+00010361 51..1.+0000+000 87..10+00002150 81..00+00514324 82..00+00443930 83..00-00002341 71....+00000080 32..10+00010190
+110613+00000981 21.322+29225160 22.322+11203420 31..00+00010169 51..1.+0000+000 87..10+00002150 81..00+00514538 82..00+00443846 83..00-00002379 71....+00000080 32..10+00009988
+110614+00000982 21.322+29071560 22.322+11228690 31..00+00010296 51..1.+0000+000 87..10+00002150 81..00+00514454 82..00+00443591 83..00-00002443 71....+00000080 32..10+00010105
+110615+00000983 21.322+29008740 22.322+11209770 31..00+00010264 51..1.+0000+000 87..10+00002150 81..00+00514495 82..00+00443496 83..00-00002407 71....+00000080 32..10+00010079
+110616+00000984 21.322+29065140 22.322+11133340 31..00+00010966 51..1.+0000+000 87..10+00002150 81..00+00513775 82..00+00443480 83..00-00002410 71....+00000080 32..10+00010793
+110617+00000985 21.322+29265720 22.322+11108490 31..00+00010920 51..1.+0000+000 87..10+00002150 81..00+00513768 82..00+00443821 83..00-00002360 71....+00000080 32..10+00010755
+110618+00000986 21.322+29191090 22.322+11178800 31..00+00010636 51..1.+0000+000 87..10+00002150 81..00+00514082 82..00+00443734 83..00-00002426 71....+00000080 32..10+00010454
+110619+00000987 21.322+29052680 22.322+11172680 31..00+00010784 51..1.+0000+000 87..10+00002150 81..00+00513968 82..00+00443487 83..00-00002443 71....+00000080 32..10+00010601
+110620+00000988 21.322+28591870 22.322+11166120 31..00+00010742 51..1.+0000+000 87..10+00002150 81..00+00514147 82..00+00442742 83..00-00002425 71....+00000080 32..10+00010562
+110621+00000989 21.322+28675130 22.322+11161640 31..00+00010703 51..1.+0000+000 87..10+00002150 81..00+00514154 82..00+00442884 83..00-00002410 71....+00000080 32..10+00010525
+110622+00000990 21.322+28749420 22.322+11185150 31..00+00010802 51..1.+0000+000 87..10+00002150 81..00+00514041 82..00+00442987 83..00-00002467 71....+00000080 32..10+00010615
+110623+00000991 21.322+28604120 22.322+11085190 31..00+00010915 51..1.+0000+000 87..10+00002150 81..00+00513953 82..00+00442719 83..00-00002319 71....+00000080 32..10+00010756
+110624+00001100 21.322+36729970 22.322+10615250 31..00+00013907 51..1.+0000+000 87..10+00001500 81..00+00517387 82..00+00457379 83..00-00001079 71....+000MKB12 32..10+00013842
+110625+00001101 21.322+37135420 22.322+10656180 31..00+00013589 51..1.+0000+000 87..10+00001500 81..00+00518309 82..00+00457494 83..00-00001136 71....+000MKB13 32..10+00013517
+110626+00001102 21.322+37132680 22.322+10656220 31..00+00013604 51..1.+0000+000 87..10+00001500 81..00+00518298 82..00+00457505 83..00-00001137 71....+000MKB13 32..10+00013532
+110627+00001103 21.322+36595790 22.322+10682950 31..00+00013200 51..1.+0000+000 87..10+00001500 81..00+00517501 82..00+00456615 83..00-00001151 71....+000MKB14 32..10+00013124
+110628+00001104 21.322+37020580 22.322+10699770 31..00+00012841 51..1.+0000+000 87..10+00001500 81..00+00518431 82..00+00456713 83..00-00001146 71....+000MKB15 32..10+00012763
+110629+00001105 21.322+32031500 22.322+10245790 31..00+00027144 51..1.+0000+000 87..10+00001300 81..00+00498434 82..00+00453832 83..00-00000585 71....+00000070 32..10+00027124
+110630+00001106 21.322+36304960 22.322+10689010 31..00+00014667 51..1.+0000+000 87..10+00001300 81..00+00516193 82..00+00457516 83..00-00001122 71....+00000035 32..10+00014581
+110631+00001107 21.322+36248940 22.322+10834340 31..00+00013587 51..1.+0000+000 87..10+00001300 81..00+00516703 82..00+00456522 83..00-00001313 71....+00000035 32..10+00013470
+110632+00001108 21.322+36244930 22.322+10852090 31..00+00012817 51..1.+0000+000 87..10+00001300 81..00+00517123 82..00+00455879 83..00-00001248 71....+00000035 32..10+00012703
+110633+00001109 21.322+36081130 22.322+10941530 31..00+00012422 51..1.+0000+000 87..10+00001300 81..00+00517094 82..00+00455353 83..00-00001368 71....+00000035 32..10+00012286
+110634+00001110 21.322+35943760 22.322+10792090 31..00+00011635 51..1.+0000+000 87..10+00001700 81..00+00517320 82..00+00454602 83..00-00001381 71....+00000035 32..10+00011545
+110635+00001111 21.322+35706770 22.322+10770400 31..00+00011337 51..1.+0000+000 87..10+00001900 81..00+00517161 82..00+00454113 83..00-00001506 71....+00000035 32..10+00011254
+110636+00001112 21.322+35984580 22.322+10642690 31..00+00010218 51..1.+0000+000 87..10+00001900 81..00+00518194 82..00+00453532 83..00-00001167 71....+00000035 32..10+00010166
+110637+00001113 21.322+36342250 22.322+10580860 31..00+00008998 51..1.+0000+000 87..10+00001900 81..00+00519319 82..00+00452845 83..00-00000957 71....+00000035 32..10+00008961
+110638+00001114 21.322+35346860 22.322+11184330 31..00+00007769 51..1.+0000+000 87..10+00001300 81..00+00519092 82..00+00451007 83..00-00000975 71....+00000035 32..10+00007635
+110639+00001115 21.322+33843330 22.322+11101020 31..00+00006670 51..1.+0000+000 87..10+00001300 81..00+00518779 82..00+00449053 83..00-00000685 71....+00000035 32..10+00006571
+110640+00001116 21.322+32282800 22.322+10996400 31..00+00006207 51..1.+0000+000 87..10+00001300 81..00+00518447 82..00+00447474 83..00-00000505 71....+00000035 32..10+00006131
+110641+00001117 21.322+30968290 22.322+11112480 31..00+00006640 51..1.+0000+000 87..10+00001300 81..00+00517725 82..00+00446313 83..00-00000692 71....+00000035 32..10+00006539
+110642+00001118 21.322+30482380 22.322+11257030 31..00+00007614 51..1.+0000+000 87..10+00001300 81..00+00516744 82..00+00445888 83..00-00001031 71....+00000035 32..10+00007466
+110643+00001119 21.322+29219930 22.322+11113560 31..00+00008585 51..1.+0000+000 87..10+00001900 81..00+00515798 82..00+00444289 83..00-00001632 71....+00000035 32..10+00008454
+110644+00001120 21.322+28655080 22.322+11141430 31..00+00009223 51..1.+0000+000 87..10+00001900 81..00+00515316 82..00+00443420 83..00-00001782 71....+00000035 32..10+00009075
+110645+00001121 21.322+27371370 22.322+11500310 31..00+00010059 51..1.+0000+000 87..10+00001550 81..00+00515230 82..00+00441398 83..00-00002136 71....+00000035 32..10+00009780
+110646+00001122 21.322+27691730 22.322+11473230 31..00+00013104 51..1.+0000+000 87..10+00001550 81..00+00512263 82..00+00440799 83..00-00002793 71....+00000035 32..10+00012755
+110647+00001123 21.322+28397060 22.322+11308920 31..00+00012973 51..1.+0000+000 87..10+00001300 81..00+00511889 82..00+00442159 83..00-00002186 71....+00000035 32..10+00012700
+110648+00001124 21.322+29000870 22.322+11102760 31..00+00012260 51..1.+0000+000 87..10+00001400 81..00+00512260 82..00+00443435 83..00-00001751 71....+00000035 32..10+00012077
+110649+00001125 21.322+29978720 22.322+11105070 31..00+00011475 51..1.+0000+000 87..10+00001400 81..00+00512886 82..00+00445285 83..00-00001619 71....+00000035 32..10+00011303
+110650+00001126 21.322+30745680 22.322+10801410 31..00+00010614 51..1.+0000+000 87..10+00001850 81..00+00513731 82..00+00446553 83..00-00001420 71....+00000035 32..10+00010530
+110651+00001127 21.322+32152390 22.322+10837970 31..00+00009861 51..1.+0000+000 87..10+00001850 81..00+00514966 82..00+00448565 83..00-00001382 71....+00000035 32..10+00009776
+110652+00001128 21.322+32793050 22.322+10926570 31..00+00009069 51..1.+0000+000 87..10+00001850 81..00+00516065 82..00+00449134 83..00-00001403 71....+00000035 32..10+00008973
+110653+00001129 21.322+33257480 22.322+11328300 31..00+00009016 51..1.+0000+000 87..10+00001300 81..00+00516498 82..00+00449641 83..00-00001405 71....+00000035 32..10+00008820
+110654+00001130 21.322+33618020 22.322+11178880 31..00+00010214 51..1.+0000+000 87..10+00001300 81..00+00515727 82..00+00450726 83..00-00001418 71....+00000035 32..10+00010040
+110655+00001131 21.322+34184540 22.322+10988290 31..00+00011060 51..1.+0000+000 87..10+00001300 81..00+00515538 82..00+00451999 83..00-00001248 71....+00000035 32..10+00010927
+110656+00001132 21.322+34689150 22.322+10879870 31..00+00011496 51..1.+0000+000 87..10+00001300 81..00+00515754 82..00+00452971 83..00-00001121 71....+00000035 32..10+00011386
+110657+00001133 21.322+35201770 22.322+11088120 31..00+00012063 51..1.+0000+000 87..10+00001300 81..00+00516054 82..00+00453990 83..00-00001589 71....+00000035 32..10+00011887
+110658+00001134 21.322+35394450 22.322+10940290 31..00+00012816 51..1.+0000+000 87..10+00001300 81..00+00515798 82..00+00454824 83..00-00001424 71....+00000035 32..10+00012676
+110659+00001135 21.322+35368920 22.322+10900400 31..00+00013591 51..1.+0000+000 87..10+00001300 81..00+00515241 82..00+00455372 83..00-00001453 71....+00000035 32..10+00013456
+110660+00001136 21.322+35210700 22.322+10658260 31..00+00014693 51..1.+0000+000 87..10+00001530 81..00+00514202 82..00+00455993 83..00-00001284 71....+00000035 32..10+00014615
+110661+00001137 21.322+35125750 22.322+10630300 31..00+00015895 51..1.+0000+000 87..10+00001450 81..00+00513227 82..00+00456726 83..00-00001259 71....+00000035 32..10+00015818
+110662+00001138 21.322+34762140 22.322+10500100 31..00+00017375 51..1.+0000+000 87..10+00001450 81..00+00511492 82..00+00457104 83..00-00001051 71....+00000035 32..10+00017321
+110663+00001139 21.322+35352730 22.322+10853570 31..00+00014206 51..1.+0000+000 87..10+00001300 81..00+00514800 82..00+00455814 83..00-00001437 71....+00000035 32..10+00014079
+110664+00001140 21.322+35441570 22.322+11049770 31..00+00013369 51..1.+0000+000 87..10+00001300 81..00+00515532 82..00+00455272 83..00-00001732 71....+00000035 32..10+00013188
+110665+00001141 21.322+35448230 22.322+11122170 31..00+00012610 51..1.+0000+000 87..10+00001300 81..00+00516049 82..00+00454697 83..00-00001749 71....+00000035 32..10+00012415
+110666+00001142 21.322+35260230 22.322+11215850 31..00+00011910 51..1.+0000+000 87..10+00001300 81..00+00516265 82..00+00453922 83..00-00001798 71....+00000035 32..10+00011694
+110667+00001143 21.322+35074980 22.322+11359690 31..00+00011629 51..1.+0000+000 87..10+00001300 81..00+00516248 82..00+00453452 83..00-00002002 71....+00000035 32..10+00011364
+110668+00001144 21.322+34698530 22.322+11385340 31..00+00011336 51..1.+0000+000 87..10+00001300 81..00+00516000 82..00+00452770 83..00-00001985 71....+00000035 32..10+00011069
+110669+00001145 21.322+34280730 22.322+11448410 31..00+00010712 51..1.+0000+000 87..10+00001300 81..00+00516024 82..00+00451823 83..00-00001954 71....+00000035 32..10+00010436
+110670+00001146 21.322+33880380 22.322+11334230 31..00+00010621 51..1.+0000+000 87..10+00001300 81..00+00515671 82..00+00451270 83..00-00001747 71....+00000035 32..10+00010389
+110671+00001147 21.322+33636650 22.322+11538900 31..00+00010126 51..1.+0000+000 87..10+00001300 81..00+00515918 82..00+00450638 83..00-00001962 71....+00000035 32..10+00009832
+110672+00001148 21.322+33636740 22.322+11538900 31..00+00010143 51..1.+0000+000 87..10+00001300 81..00+00515904 82..00+00450647 83..00-00001966 71....+00000035 32..10+00009848
+110673+00001149 21.322+33499570 22.322+11479940 31..00+00009225 51..1.+0000+000 87..10+00001700 81..00+00516534 82..00+00450013 83..00-00002063 71....+00000035 32..10+00008977
+110674+00001150 21.322+32796290 22.322+11541040 31..00+00008740 51..1.+0000+000 87..10+00001700 81..00+00516509 82..00+00448931 83..00-00002033 71....+00000035 32..10+00008485
+110675+00001151 21.322+31993800 22.322+11417700 31..00+00009208 51..1.+0000+000 87..10+00001700 81..00+00515645 82..00+00448089 83..00-00001971 71....+00000035 32..10+00008980
+110676+00001152 21.322+30488560 22.322+11101860 31..00+00010132 51..1.+0000+000 87..10+00002150 81..00+00514237 82..00+00446088 83..00-00002132 71....+00000035 32..10+00009981
+110677+00001153 21.322+29672910 22.322+11050060 31..00+00010800 51..1.+0000+000 87..10+00002150 81..00+00513550 82..00+00444776 83..00-00002161 71....+00000035 32..10+00010653
+110678+00001154 21.322+28989290 22.322+11116170 31..00+00011342 51..1.+0000+000 87..10+00002150 81..00+00513160 82..00+00443557 83..00-00002366 71....+00000035 32..10+00011169
+110679+00001155 21.322+28564300 22.322+11101240 31..00+00012055 51..1.+0000+000 87..10+00002150 81..00+00512614 82..00+00442667 83..00-00002462 71....+00000035 32..10+00011875
+110680+00001156 21.322+28095110 22.322+11281100 31..00+00012692 51..1.+0000+000 87..10+00002150 81..00+00512305 82..00+00441657 83..00-00002924 71....+00000035 32..10+00012436
+110681+00001157 21.322+28106680 22.322+11281030 31..00+00012681 51..1.+0000+000 87..10+00002150 81..00+00512309 82..00+00441681 83..00-00002922 71....+00000035 32..10+00012425
+110682+00001158 21.322+27529000 22.322+11483730 31..00+00011303 51..1.+0000+000 87..10+00002000 81..00+00514009 82..00+00441160 83..00-00002848 71....+00000035 32..10+00010998
+110683+00001159 21.322+28857550 22.322+11362060 31..00+00009672 51..1.+0000+000 87..10+00002000 81..00+00514889 82..00+00443636 83..00-00002291 71....+00000035 32..10+00009451
+110684+00001160 21.322+29995180 22.322+11253800 31..00+00008324 51..1.+0000+000 87..10+00002150 81..00+00516025 82..00+00445316 83..00-00002016 71....+00000035 32..10+00008163
+110685+00001161 21.322+31041640 22.322+11366460 31..00+00007848 51..1.+0000+000 87..10+00002150 81..00+00516623 82..00+00446572 83..00-00002059 71....+00000035 32..10+00007668
+110686+00001162 21.322+32605100 22.322+11170610 31..00+00007047 51..1.+0000+000 87..10+00002150 81..00+00517832 82..00+00448079 83..00-00001676 71....+00000035 32..10+00006928
+110687+00001163 21.322+33874370 22.322+11149760 31..00+00007574 51..1.+0000+000 87..10+00002150 81..00+00518076 82..00+00449582 83..00-00001748 71....+00000035 32..10+00007450
+110688+00001164 21.322+35152440 22.322+11279350 31..00+00009151 51..1.+0000+000 87..10+00001850 81..00+00518002 82..00+00451813 83..00-00001914 71....+00000035 32..10+00008967
+110689+00001165 21.322+35481470 22.322+11464170 31..00+00010141 51..1.+0000+000 87..10+00001350 81..00+00517754 82..00+00452812 83..00-00001899 71....+00000035 32..10+00009874
+110690+00001166 21.322+35508090 22.322+11332290 31..00+00011170 51..1.+0000+000 87..10+00001350 81..00+00517103 82..00+00453640 83..00-00001908 71....+00000035 32..10+00010927
+110691+00001167 21.322+35600180 22.322+11170070 31..00+00011769 51..1.+0000+000 87..10+00001350 81..00+00516813 82..00+00454238 83..00-00001738 71....+00000035 32..10+00011571
+110692+00001168 21.322+35885110 22.322+11123600 31..00+00012381 51..1.+0000+000 87..10+00001350 81..00+00516847 82..00+00455053 83..00-00001761 71....+00000035 32..10+00012189
+110693+00001169 21.322+35898320 22.322+11023870 31..00+00013243 51..1.+0000+000 87..10+00001350 81..00+00516337 82..00+00455774 83..00-00001708 71....+00000035 32..10+00013072
+110694+00001170 21.322+35707960 22.322+10995530 31..00+00013823 51..1.+0000+000 87..10+00001350 81..00+00515665 82..00+00455990 83..00-00001740 71....+00000035 32..10+00013654
+110695+00001171 21.322+35563210 22.322+10847760 31..00+00014164 51..1.+0000+000 87..10+00001350 81..00+00515178 82..00+00456088 83..00-00001468 71....+00000035 32..10+00014039
+110696+00001172 21.322+34306800 22.322+11254810 31..00+00010236 51..1.+0000+000 87..10+00001300 81..00+00516362 82..00+00451607 83..00-00001542 71....+00000055 32..10+00010037
+110697+00001173 21.322+34453250 22.322+11255750 31..00+00010245 51..1.+0000+000 87..10+00001300 81..00+00516502 82..00+00451791 83..00-00001545 71....+00000055 32..10+00010046
+110698+00001174 21.322+34280570 22.322+11222230 31..00+00010875 51..1.+0000+000 87..10+00001300 81..00+00515837 82..00+00451972 83..00-00001613 71....+00000055 32..10+00010675
+110699+00001175 21.322+34446340 22.322+11165980 31..00+00011171 51..1.+0000+000 87..10+00001300 81..00+00515776 82..00+00452386 83..00-00001572 71....+00000055 32..10+00010984
diff --git a/sample_data/sokkia_sdr33.tops b/sample_data/sokkia_sdr33.tops
new file mode 100644
index 0000000..ea68d6f
--- /dev/null
+++ b/sample_data/sokkia_sdr33.tops
@@ -0,0 +1,22 @@
+
+00NMSDR33 V04-04.02 00-000-00 00:00 211111
+10NMJOB3 121111
+06NM1.00000000
+01NM:SET5F V01-00 020078 31 0.00000000
+13PCP.C. mm Applied:-30.000
+02TP 00000031509.97000000 937.27400000 20.05300000 1.50500000 11
+03NM1.60000000
+08TP 00000009510.50400000 908.83800000 19.69900000 11
+08TP 00000010510.40000000 907.75700000 19.48700000 11
+08TP 00000011510.37900000 906.92000000 19.26200000 11
+08TP 00000012509.57000000 907.92000000 19.52300000 11
+08TP 00000013508.50000000 907.19200000 19.39700000 11
+08TP 00000014508.29700000 909.81900000 19.48900000 11
+08TP 00000015508.66400000 912.12900000 19.53600000 11
+08TP 00000016507.17700000 911.62800000 19.40700000 11
+08TP 00000017506.16600000 911.56500000 19.22600000 11
+08TP 00000018506.76100000 914.19200000 19.45000000 11
+08TP 00000019505.97500000 915.79100000 19.44000000 11
+08TP 00000020506.79700000 915.51400000 19.55600000 11
+58903
+
diff --git a/scripts/totalopenstation-cli-connector.py b/scripts/totalopenstation-cli-connector.py
index 05d830e..1dd07bc 100755
--- a/scripts/totalopenstation-cli-connector.py
+++ b/scripts/totalopenstation-cli-connector.py
@@ -54,7 +54,10 @@ parser.add_option("-o",
(options, args) = parser.parse_args()
-modelclass = BUILTIN_INPUT_FORMATS[options.model]
+if not (options.model and options.port):
+ sys.exit("Please specify your model and the port to download from")
+
+modelclass = BUILTIN_MODELS[options.model]
# import input format parser
if isinstance(modelclass, tuple):
@@ -67,7 +70,11 @@ if isinstance(modelclass, tuple):
sys.exit(_('Error loading the required model module: %s' % msg))
station = modelclass(options.port)
-station.open()
+try:
+ station.close() # sometimes the port will be already open for no reason
+ station.open()
+except serial.SerialException, detail:
+ sys.exit(detail)
print "Now you can start download from %s device" % options.model
diff --git a/scripts/totalopenstation-cli-parser.py b/scripts/totalopenstation-cli-parser.py
index cac5be9..6d574bd 100755
--- a/scripts/totalopenstation-cli-parser.py
+++ b/scripts/totalopenstation-cli-parser.py
@@ -1,7 +1,7 @@
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# filename: totalopenstation-cli-parser.py
-# Copyright 2008-2009 Stefano Costa <steko at iosa.it>
+# Copyright 2008-2013 Stefano Costa <steko at iosa.it>
# This file is part of Total Open Station.
@@ -22,6 +22,7 @@
import sys
import os
import gettext
+import importlib
from optparse import OptionParser
@@ -99,34 +100,47 @@ if options.list:
sys.stdout.write(list_formats())
sys.exit()
+def exit_with_error(message):
+ sys.exit(_("\nError:\n%(message)s\n\n%(formats)s") % {'message': message,
+ 'formats': list_formats()})
+
if options.informat:
- inputclass = BUILTIN_INPUT_FORMATS[options.informat]
- if isinstance(inputclass, tuple):
- try:
- # builtin format parser
- mod, cls, name = inputclass
- inputclass = getattr(
- __import__('totalopenstation.formats.' + mod, None, None, [cls]), cls)
- except ImportError, message:
- sys.exit(_("\nError:\n%s\n\n%s") % (message, list_formats()))
+ try:
+ inputclass = BUILTIN_INPUT_FORMATS[options.informat]
+ except KeyError, message:
+ exit_with_error(_('%s is not a valid input format') % message)
+ else:
+ if isinstance(inputclass, tuple):
+ try:
+ # builtin format parser
+ mod, cls, name = inputclass
+ inputclass = getattr(importlib.import_module('totalopenstation.formats.' + mod), cls)
+ except ImportError, message:
+ exit_with_error(message)
else:
sys.exit(_("Please specify an input format"))
if options.outformat:
- outputclass = BUILTIN_OUTPUT_FORMATS[options.outformat]
- if isinstance(outputclass, tuple):
- try:
- # builtin output builder
- mod, cls, name = outputclass
- outputclass = getattr(
- __import__('totalopenstation.output.' + mod, None, None, [cls]), cls)
- except ImportError, message:
- sys.exit(_("\nError:\n%s\n\n%s") % (message, list_formats()))
+ try:
+ outputclass = BUILTIN_OUTPUT_FORMATS[options.outformat]
+ except KeyError, message:
+ exit_with_error('%s is not a valid output format' % message)
+ else:
+ if isinstance(outputclass, tuple):
+ try:
+ # builtin output builder
+ mod, cls, name = outputclass
+ outputclass = getattr(importlib.import_module('totalopenstation.output.' + mod), cls)
+ except ImportError, message:
+ exit_with_error(message)
if options.infile:
infile = open(options.infile, 'r').read()
else:
- infile = sys.stdin.read()
+ if sys.stdin.isatty():
+ sys.exit(_('No input data!'))
+ else:
+ infile = sys.stdin.read()
def main(infile):
diff --git a/scripts/totalopenstation-gui.py b/scripts/totalopenstation-gui.py
index 05d3470..ac14999 100755
--- a/scripts/totalopenstation-gui.py
+++ b/scripts/totalopenstation-gui.py
@@ -1,8 +1,8 @@
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# filename: totalopenstation-gui.py
-# Copyright 2008-2011 Stefano Costa <steko at iosa.it>
-# Copyright 2010 Luca Bianconi <luxetluc at yahoo.it>
+# Copyright 2008-2014 Stefano Costa <steko at iosa.it>
+# Copyright 2010,2012 Luca Bianconi <luxetluc at yahoo.it>
#
# This file is part of Total Open Station.
#
@@ -119,12 +119,13 @@ class AboutDialog(tkSimpleDialog.Dialog):
def body(self, master):
title = "Total Open Station %s" % totalopenstation.__version__
message = _("""
-Total Open Station is copyright 2008-2011 Luca Bianconi, Stefano Costa
-and the IOSA project.
+Total Open Station is copyright 2008-2015 Luca Bianconi, Stefano Costa
+and the IOSA project, under the GNU GPL v3 or any later version.
-http://tops.berlios.de/
+http://tops.iosa.it/
-The application logo is copyright 2008 Lapo Calamandrei.""")
+The application logo is copyright 2008 Lapo Calamandrei under the same
+license.""")
self.logo_data = logo_data
self.logo = PhotoImage(data=self.logo_data)
@@ -307,6 +308,10 @@ class ProcessDialog(tkSimpleDialog.Dialog):
sd_file.write(output.process())
sd_file.close()
+class PreferencesDialog(tkSimpleDialog.Dialog):
+ '''A dialog to change preferences and options.'''
+
+
class ErrorDialog(tkSimpleDialog.Dialog):
@@ -359,6 +364,33 @@ class Tops:
self.main_frame = Frame(parent) ###
self.main_frame.pack(expand=YES, fill=BOTH)
+ #MENU
+ self.menubar = Menu(self.myParent)
+ self.myParent.config(menu=self.menubar)
+
+ topsmenu = Menu(self.menubar, tearoff=0)
+ topsmenu.add_command(label=_("Connect"), command=self.connect)
+ topsmenu.add_command(label=_("Process data"), command=self.process)
+ topsmenu.add_separator()
+ topsmenu.add_command(label=_("Quit"), command=self.on_app_close)
+
+ filemenu = Menu(self.menubar, tearoff=0)
+ filemenu.add_command(label=_("Open file"), command=self.open_a_file)
+ filemenu.add_command(label=_("Save raw data"), command=self.save_a_file)
+
+ helpmenu = Menu(self.menubar, tearoff=0)
+ helpmenu.add_command(label=_("About TOPS"), command=self.about)
+
+ languagemenu = Menu(self.menubar, tearoff=0)
+ language = StringVar()
+ languagemenu.add_radiobutton(label="English",variable=language,value="en")
+ languagemenu.add_radiobutton(label="Italiano",variable=language,value="it")
+
+ self.menubar.add_cascade(label="Total Station", menu=topsmenu)
+ self.menubar.add_cascade(label="File", menu=filemenu)
+ #self.menubar.add_cascade(label="Language", menu=languagemenu)
+ self.menubar.add_cascade(label="Help", menu=helpmenu)
+
self.upper_frame = Frame(self.main_frame) ###
self.upper_frame.pack(side=TOP, expand=NO, padx=10,
pady=5, ipadx=5, ipady=5)
@@ -399,7 +431,7 @@ class Tops:
self.option1_label = Label(self.option1_frame,
text=_("Port"),
- width=25)
+ width=30)
self.option1_label.pack(side=LEFT)
self.option1_value = StringVar()
self.option1_value.set(self.upref.getvalue('port'))
@@ -408,7 +440,7 @@ class Tops:
#
self.option1_entry = Entry(self.option1_frame,
textvariable=self.option1_value,
- width=25)
+ width=20)
# ... comment out this Menubutton if you want to use the scan() output
#
@@ -438,7 +470,7 @@ class Tops:
self.optionMODEL_label = Label(self.optionMODEL_frame,
text=_("Total Station"),
justify=LEFT,
- width=25)
+ width=30)
self.optionMODEL_label.pack(side=LEFT, anchor=E)
self.optionMODEL_value = StringVar()
@@ -448,7 +480,7 @@ class Tops:
text="choose a model",
textvariable=self.optionMODEL_value,
relief=RAISED,
- width=24)
+ width=20)
self.optionMODEL_entry.menu = Menu(self.optionMODEL_entry, tearoff=0)
self.optionMODEL_entry["menu"] = self.optionMODEL_entry.menu
@@ -466,7 +498,7 @@ class Tops:
self.option2_label = Label(self.option2_frame,
text="Baudrate",
- width=25)
+ width=30)
self.option2_label.pack(side=LEFT)
self.option2_value = IntVar()
@@ -476,13 +508,13 @@ class Tops:
except (AttributeError, AssertionError):
self.option2_entry = Entry(self.option2_frame,
textvariable=self.option2_value,
- width=25)
+ width=20)
else:
self.option2_entry = Menubutton(self.option2_frame,
text=_("choose a value"),
textvariable=self.option2_value,
relief=RAISED,
- width=24)
+ width=20)
self.option2_entry.menu = Menu(self.option2_entry, tearoff=0)
self.option2_entry["menu"] = self.option2_entry.menu
for key in sorted(serial.baudrate_constants.keys()): # dynamic list
@@ -500,14 +532,14 @@ class Tops:
self.option3_label = Label(self.option3_frame,
text=_("Bytesize"),
justify=LEFT,
- width=25)
+ width=30)
self.option3_label.pack(side=LEFT, anchor=E)
self.option3_value = IntVar()
self.option3_entry = Menubutton(self.option3_frame,
text=_("choose a value"),
textvariable=self.option3_value,
relief=RAISED,
- width=24)
+ width=20)
self.option3_entry.menu = Menu(self.option3_entry, tearoff=0)
self.option3_entry["menu"] = self.option3_entry.menu
for v in [8,7,6,5]:
@@ -523,14 +555,14 @@ class Tops:
self.option4_label = Label(self.option4_frame,
text=_("Parity setting"),
justify=LEFT,
- width=25)
+ width=30)
self.option4_label.pack(side=LEFT, anchor=E)
self.option4_value = StringVar()
self.option4_entry = Menubutton(self.option4_frame,
text=_("choose a value"),
textvariable=self.option4_value,
relief=RAISED,
- width=24)
+ width=20)
self.option4_entry.menu = Menu(self.option4_entry, tearoff=0)
self.option4_entry["menu"] = self.option4_entry.menu
for v in ['Even', 'None', 'Odd']:
@@ -546,14 +578,14 @@ class Tops:
self.option5_label = Label(self.option5_frame,
text=_("Stop bit"),
justify=LEFT,
- width=25)
+ width=30)
self.option5_label.pack(side=LEFT, anchor=E)
self.option5_value = IntVar()
self.option5_entry = Menubutton(self.option5_frame,
text=_("choose a value"),
textvariable=self.option5_value,
relief=RAISED,
- width=24)
+ width=20)
self.option5_entry.menu = Menu(self.option5_entry, tearoff=0)
self.option5_entry["menu"] = self.option5_entry.menu
for v in [1, 2]:
@@ -562,26 +594,34 @@ class Tops:
value=v)
self.option5_entry.pack(side=LEFT, anchor=W)
+ # option 6 : time lapse between data packets
+ self.option6_frame = Frame(self.control_panel, relief=RIDGE, bd=1)
+ self.option6_frame.pack(side=TOP)
+
+ self.option6_label = Label(self.option6_frame,
+ text=_("Time lapse between data packets"),
+ justify=LEFT,
+ width=30)
+ self.option6_label.pack(side=LEFT, anchor=E)
+ self.option6_value = DoubleVar()
+ self.option6_value.set(self.upref.getvalue('sleeptime'))
+ self.option6_entry = Entry(self.option6_frame,
+ textvariable=self.option6_value,
+ relief=RAISED,
+ justify=RIGHT,
+ width=20)
+ self.option6_entry.pack(side=LEFT, anchor=W)
# control buttons
self.connect_button = Button(self.buttons_frame,
text=_("Connect"),
- background="green",
padx=imb_buttonx,
pady=imb_buttony)
self.connect_button.pack(side=LEFT, anchor=S)
self.connect_button.bind("<Button-1>", self.connect_action)
self.connect_button.bind("<Return>", self.connect_action)
- self.open_button = Button(self.buttons_frame,
- text=_("Open file"),
- padx=imb_buttonx,
- pady=imb_buttony)
- self.open_button.pack(side=LEFT, anchor=S)
- self.open_button.bind("<Button-1>", self.open_action)
- self.open_button.bind("<Return>", self.open_action)
-
self.save_button = Button(self.buttons_frame,
text=_("Save raw data"),
padx=imb_buttonx,
@@ -592,29 +632,12 @@ class Tops:
self.process_button = Button(self.buttons_frame,
text=_("Process data"),
- background="cyan",
padx=imb_buttonx,
pady=imb_buttony)
self.process_button.pack(side=LEFT, anchor=S)
self.process_button.bind("<Button-1>", self.process_action)
self.process_button.bind("<Return>", self.process_action)
- self.about_button = Button(self.buttons_frame,
- text=_("About TOPS"),
- padx=imb_buttonx,
- pady=imb_buttony)
- self.about_button.pack(side=LEFT, anchor=S)
- self.about_button.bind("<Button-1>", self.about_action)
- self.about_button.bind("<Return>", self.about_action)
-
- self.exit_button = Button(self.buttons_frame,
- text=_("Quit"),
- padx=imb_buttonx,
- pady=imb_buttony)
- self.exit_button.pack(side=LEFT, anchor=S)
- self.exit_button.bind("<Button-1>", self.exit_action)
- self.exit_button.bind("<Return>", self.exit_action)
-
self.status = StatusBar(self.main_frame)
self.status.set('Welcome to Total Open Station')
self.status.pack(side=BOTTOM, fill=X)
@@ -633,9 +656,26 @@ class Tops:
self.text_area['yscrollcommand'] = self.scrollY.set
self.scrollY.pack(side=RIGHT, expand=YES, fill=Y, anchor=W)
+ # init stuff
+ self.myParent.title("Total Open Station")
+ self.myParent.protocol("WM_DELETE_WINDOW", self.on_app_close)
+ self.print_model()
+ self.myParent.mainloop()
+
+ def on_click_language(self):
+ '''
+ open select language dialog
+ '''
+ pass
+
+ def on_app_close(self):
+ '''Callback function to ask confirmation before quitting the application.'''
+
+ if askokcancel("Quit","Do you really want to quit application ?"):
+ self.myParent.destroy()
def exit_action(self, event):
- self.myParent.destroy()
+ self.on_app_close()
def print_model(self):
model = self.optionMODEL_value.get()
@@ -656,7 +696,7 @@ class Tops:
ipadx=5,
ipady=5)
- def connect_action(self, event):
+ def connect(self):
chosen_model = self.optionMODEL_value.get()
chosen_port = self.option1_value.get()
@@ -684,33 +724,40 @@ class Tops:
except ImportError, msg:
showwarning(_('Import error'),
_('Error loading the required model module: %s' % msg))
- if True:#self.options:
- mc = modelclass(chosen_port, **self.options)
+
+ mc = modelclass(chosen_port, **self.options)
+
try:
+ mc.close() # sometimes the port will be already open for no reason
mc.open()
except serial.SerialException, detail:
e = ErrorDialog(self.myParent, detail)
else:
st = DownloadDialog(self.myParent)
+ sleeptime = self.option6_value.get()
if st.result:
self.status.set(_("Waiting for data: please start transfer from your total station menu."))
while mc.inWaiting() == 0:
- sleep(0.1)
+ sleep(sleeptime)
n = mc.inWaiting()
result = mc.read(n)
self.replace_text(str(result))
- sleep(0.1)
+ sleep(sleeptime)
+
while mc.inWaiting() > 0:
newdata = mc.read(mc.inWaiting())
result += newdata
self.status.set(_('Downloaded %d bytes'), len(result))
self.replace_text(str(result))
- sleep(0.3) # TODO determine sleep time from baudrate
+ sleep(sleeptime) # TODO determine sleep time from baudrate
mc.close()
showinfo(_('Success!'),
_('Download finished!\nYou have %d bytes of data.') % len(result))
- def open_action(self, event):
+ def connect_action(self, event):
+ self.connect()
+
+ def open_a_file(self):
try:
d = tkFileDialog.askopenfilename()
of = open(d, 'r')
@@ -719,11 +766,17 @@ class Tops:
except:
pass
- def process_action(self, event):
+ def open_action(self, event):
+ self.open_a_file()
+
+ def process(self):
data = self.text_area.get("1.0", END)
d = ProcessDialog(self.myParent, data)
- def save_action(self, event):
+ def process_action(self, event):
+ self.process()
+
+ def save_a_file(self):
try:
sd = tkFileDialog.asksaveasfilename(defaultextension='.tops')
data = self.text_area.get("1.0", END)
@@ -732,9 +785,15 @@ class Tops:
except:
pass
- def about_action(self, event):
+ def save_action(self, event):
+ self.save_a_file()
+
+ def about(self):
d = AboutDialog(self.myParent)
+ def about_action(self, event):
+ self.about()
+
def replace_text(self, text):
self.text_area.delete("1.0", END)
self.text_area.insert(END, text.replace('\r', ''))
@@ -744,12 +803,12 @@ class Tops:
root = Tk()
Tops = Tops(root)
-root.title("Total Open Station")
-root.mainloop()
-#save user's preferences (model and port)
+
+#save user's preferences (model, port and sleeptime if custom model)
atexit.register(Tops.upref.setvalues,
{'model': Tops.optionMODEL_value.get(),
- 'port':Tops.option1_value.get()})
-
+ 'port': Tops.option1_value.get(),
+ 'sleeptime': Tops.option6_value.get(),
+ })
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 0000000..861a9f5
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,5 @@
+[egg_info]
+tag_build =
+tag_date = 0
+tag_svn_revision = 0
+
diff --git a/setup.py b/setup.py
index d4e5760..44c0a10 100644
--- a/setup.py
+++ b/setup.py
@@ -16,7 +16,7 @@ setup(
description='Download and export survey data from your total station',
long_description=open('README.txt').read(),
classifiers=[
- #'Development Status :: 4 - Beta',
+ 'Development Status :: 4 - Beta',
'Environment :: Console',
'Environment :: X11 Applications',
'Intended Audience :: End Users/Desktop',
diff --git a/totalopenstation.egg-info/PKG-INFO b/totalopenstation.egg-info/PKG-INFO
new file mode 100644
index 0000000..c1f3189
--- /dev/null
+++ b/totalopenstation.egg-info/PKG-INFO
@@ -0,0 +1,55 @@
+Metadata-Version: 1.1
+Name: totalopenstation
+Version: 0.3.1
+Summary: Download and export survey data from your total station
+Home-page: http://tops.iosa.it/
+Author: Stefano Costa
+Author-email: steko at iosa.it
+License: GNU GPLv3
+Description: ====================
+ Total Open Station
+ ====================
+
+ Total Open Station (TOPS for friends) is a free software program for
+ downloading and processing data from total station devices, written in
+ the Python programming language.
+
+ This is a task which is usually done by proprietary, dedicated and
+ Windows™-only software, but TOPS is different by nature, because:
+
+ - it is *free/libre open source software*;
+ - it works on *any* operating system where Python is available;
+ - it is designed to support as many devices and formats as possible, all
+ within the same program, opposed to having one program per device.
+
+ Every model has its own quirks, but TOPS uses a modular structure and
+ keeps the downloading of data logically separated from its processing,
+ thus enabling exporting data to a variety of output formats, even at a
+ later moment. Archiving of raw data is made easy by using plain text
+ files.
+
+ The application icons are copyright by Lapo Calamandrei 2008, under the
+ same license as Total Open Station.
+
+ Documentation
+ =============
+
+ Documentation is available at in the ``docs`` subdirectory of this
+ package and online at http://totalopenstation.readthedocs.org/ with
+ an user guide, details on the application structure, supported models
+ and other interesting stuff.
+
+Keywords: survey geodimeter
+Platform: UNKNOWN
+Classifier: Development Status :: 4 - Beta
+Classifier: Environment :: Console
+Classifier: Environment :: X11 Applications
+Classifier: Intended Audience :: End Users/Desktop
+Classifier: License :: OSI Approved :: GNU General Public License (GPL)
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.5
+Classifier: Programming Language :: Python :: 2.6
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Topic :: Scientific/Engineering :: GIS
diff --git a/totalopenstation.egg-info/SOURCES.txt b/totalopenstation.egg-info/SOURCES.txt
new file mode 100644
index 0000000..c1857cc
--- /dev/null
+++ b/totalopenstation.egg-info/SOURCES.txt
@@ -0,0 +1,112 @@
+AUTHORS
+COPYING.txt
+MANIFEST.in
+README.txt
+setup.py
+data/totalopenstation.desktop
+data/icons/16x16/totalopenstation.png
+data/icons/16x16/totalopenstation.svg
+data/icons/22x22/totalopenstation.png
+data/icons/22x22/totalopenstation.svg
+data/icons/24x24/totalopenstation.png
+data/icons/32x32/totalopenstation.png
+data/icons/32x32/totalopenstation.svg
+data/icons/48x48/totalopenstation.png
+data/icons/48x48/totalopenstation.svg
+docs/contributing.rst
+docs/faq.rst
+docs/formats.rst
+docs/getting_sample_data.rst
+docs/glossary.rst
+docs/index.rst
+docs/installing.rst
+docs/library.rst
+docs/models.rst
+docs/release.rst
+docs/roadmap.rst
+docs/running.rst
+docs/users.rst
+docs/input_formats/general.rst
+docs/input_formats/if_carlson_rw5.rst
+docs/input_formats/if_leica_gsi.rst
+docs/input_formats/if_leica_tcr_1205.rst
+docs/input_formats/if_nikon_raw_v200.rst
+docs/input_formats/if_sokkia_sdr33.rst
+docs/input_formats/if_trimble_are.rst
+docs/input_formats/if_zeiss_rec_500.rst
+docs/input_formats/new.rst
+docs/input_formats/other.rst
+docs/models/general.rst
+docs/models/model_leica_tcr_1205.rst
+docs/models/model_nikon_npl_350.rst
+docs/models/model_zeiss_elta_r55.rst
+docs/models/other.rst
+locale/de/LC_MESSAGES/messages.po
+locale/el/LC_MESSAGES/messages.po
+locale/es_ES/LC_MESSAGES/messages.po
+locale/fa/LC_MESSAGES/messages.po
+locale/fr/LC_MESSAGES/messages.po
+locale/it/LC_MESSAGES/messages.po
+locale/pl/LC_MESSAGES/messages.po
+locale/tr/LC_MESSAGES/messages.po
+sample_data/Leica1200.rw5
+sample_data/Leica1200.rw5.csv
+sample_data/leica_1205_1.txt
+sample_data/leica_tcr_1205
+sample_data/leica_tcr_705
+sample_data/nikon_npl_350
+sample_data/nikon_raw_v200.tops
+sample_data/sokkia_sdr33.tops
+sample_data/topcon_gts_229
+sample_data/zeiss_elta_r55
+sample_data/zeiss_elta_r55-R4.tops
+sample_data/zeiss_elta_r55-R5.tops
+sample_data/zeiss_elta_r55-REC_500.tops
+sample_data/zeiss_elta_r55-R_E.tops
+sample_data/leica_gsi/leica_gsi16_gurob.gsi
+sample_data/leica_gsi/leica_gsi8_ertola.gsi
+sample_data/trimble/BSG-08-11-19.are
+scripts/totalopenstation-cli-connector.py
+scripts/totalopenstation-cli-parser.py
+scripts/totalopenstation-gui.py
+totalopenstation/__init__.py
+totalopenstation.egg-info/PKG-INFO
+totalopenstation.egg-info/SOURCES.txt
+totalopenstation.egg-info/dependency_links.txt
+totalopenstation.egg-info/not-zip-safe
+totalopenstation.egg-info/requires.txt
+totalopenstation.egg-info/top_level.txt
+totalopenstation/formats/__init__.py
+totalopenstation/formats/carlson_rw5.py
+totalopenstation/formats/leica_gsi.py
+totalopenstation/formats/leica_tcr_1205.py
+totalopenstation/formats/leica_tcr_705.py
+totalopenstation/formats/nikon_raw_v200.py
+totalopenstation/formats/polar.py
+totalopenstation/formats/sokkia_sdr33.py
+totalopenstation/formats/topcon_gts.py
+totalopenstation/formats/trimble_are.py
+totalopenstation/formats/zeiss_rec_500.py
+totalopenstation/models/__init__.py
+totalopenstation/models/custom.py
+totalopenstation/models/leica_tcr_1205.py
+totalopenstation/models/leica_tcr_705.py
+totalopenstation/models/nikon_npl_350.py
+totalopenstation/models/trimble.py
+totalopenstation/models/zeiss_elta_r55.py
+totalopenstation/output/__init__.py
+totalopenstation/output/tops_csv.py
+totalopenstation/output/tops_dat.py
+totalopenstation/output/tops_dxf.py
+totalopenstation/output/tops_geojson.py
+totalopenstation/output/tops_sql.py
+totalopenstation/output/tops_txt.py
+totalopenstation/tests/__init__.py
+totalopenstation/tests/test_nikon.py
+totalopenstation/tests/test_polar.py
+totalopenstation/tests/test_rw5.py
+totalopenstation/tests/test_sokkia_sdr33.py
+totalopenstation/tests/test_zeiss.py
+totalopenstation/utils/__init__.py
+totalopenstation/utils/scanwin32.py
+totalopenstation/utils/upref.py
\ No newline at end of file
diff --git a/totalopenstation.egg-info/dependency_links.txt b/totalopenstation.egg-info/dependency_links.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/totalopenstation.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/totalopenstation.egg-info/not-zip-safe b/totalopenstation.egg-info/not-zip-safe
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/totalopenstation.egg-info/not-zip-safe
@@ -0,0 +1 @@
+
diff --git a/totalopenstation.egg-info/requires.txt b/totalopenstation.egg-info/requires.txt
new file mode 100644
index 0000000..f6c1a1f
--- /dev/null
+++ b/totalopenstation.egg-info/requires.txt
@@ -0,0 +1 @@
+pyserial
diff --git a/totalopenstation.egg-info/top_level.txt b/totalopenstation.egg-info/top_level.txt
new file mode 100644
index 0000000..0923ad3
--- /dev/null
+++ b/totalopenstation.egg-info/top_level.txt
@@ -0,0 +1 @@
+totalopenstation
diff --git a/totalopenstation/__init__.py b/totalopenstation/__init__.py
index 0c04b20..10453df 100644
--- a/totalopenstation/__init__.py
+++ b/totalopenstation/__init__.py
@@ -1,24 +1,3 @@
# -*- coding: utf-8 -*-
-# Copyright 2007-2011 by the Sphinx team http://sphinx.pocoo.org/
-
-from os import path
-
-__version__ = '0.3'
-
-package_dir = path.abspath(path.dirname(__file__))
-
-if '+' in __version__ or 'pre' in __version__:
- # try to find out the changeset hash if checked out from hg, and append
- # it to __version__ (since we use this value from setup.py, it gets
- # automatically propagated to an installed copy as well)
- try:
- import subprocess
- p = subprocess.Popen(['hg', 'id', '-i', '-R',
- path.join(package_dir, '..')],
- stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- out, err = p.communicate()
- if out:
- __version__ += '/' + out.strip()
- except Exception:
- pass
+__version__ = '0.3.1'
diff --git a/totalopenstation/formats/__init__.py b/totalopenstation/formats/__init__.py
index 6f0174d..9393a52 100644
--- a/totalopenstation/formats/__init__.py
+++ b/totalopenstation/formats/__init__.py
@@ -80,10 +80,13 @@ class Parser:
BUILTIN_INPUT_FORMATS = {
+ 'carlson_rw5': ('carlson_rw5', 'FormatParser', 'Carlson RW5'),
+ 'leica_gsi': ('leica_gsi', 'FormatParser', 'Leica GSI'),
+ 'leica_tcr_705': ('leica_tcr_705', 'FormatParser', 'Leica TCR 705'),
'leica_tcr_1205': ('leica_tcr_1205', 'FormatParser', 'Leica TCR 1205'),
- 'zeiss_rec_500': ('zeiss_rec_500', 'FormatParser', 'Zeiss REC 500'),
'nikon_raw_v200': ('nikon_raw_v200', 'FormatParser','Nikon RAW V2.00'),
- 'leica_tcr_705': ('leica_tcr_705', 'FormatParser', 'Leica TCR 705'),
- 'trimble_are': ('trimble_are', 'FormatParser', 'Trimble AREA'),
+ 'sokkia_sdr33': ('sokkia_sdr33', 'FormatParser', 'Sokkia SDR33'),
'topcon_gts': ('topcon_gts', 'FormatParser', 'Topcon GTS'),
+ 'trimble_are': ('trimble_are', 'FormatParser', 'Trimble AREA'),
+ 'zeiss_rec_500': ('zeiss_rec_500', 'FormatParser', 'Zeiss REC 500'),
}
diff --git a/totalopenstation/formats/carlson_rw5.py b/totalopenstation/formats/carlson_rw5.py
new file mode 100644
index 0000000..f9f0dbe
--- /dev/null
+++ b/totalopenstation/formats/carlson_rw5.py
@@ -0,0 +1,90 @@
+# -*- coding: utf-8 -*-
+# filename: formats/carlson_rw5.py
+# Copyright 2014 Stefano Costa <steko at iosa.it>
+
+# This file is part of Total Open Station.
+
+# Total Open Station is free software: you can 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.
+
+# Total Open Station is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with Total Open Station. If not, see
+# <http://www.gnu.org/licenses/>.
+
+from decimal import Decimal
+
+from .polar import BasePoint, PolarPoint
+
+
+class FormatParser:
+
+ def __init__(self, data):
+ self.rows = (r for r in data.splitlines() if not r.startswith('-- '))
+ # Text comments, but not comment records ------------------------^
+
+ def _points(self):
+ base_points = {}
+ points = []
+
+ def record(recstr):
+ fields = recstr.split(',')
+ record_fields = {f[0:2] : f[2:] for f in fields[1:]}
+
+ # Record type, including comment records
+ if len(fields[0]) > 2:
+ record_fields['type'] = fields[0].strip('-')
+ record_fields['comment'] = True
+ else:
+ record_fields['type'] = fields[0]
+
+ # Note field
+ try:
+ record_fields['--']
+ except KeyError:
+ record_fields['note'] = ''
+ else:
+ record_fields['note'] = record_fields['--']
+ return record_fields
+
+ for row in self.rows:
+ rec = record(row)
+ print(rec)
+ if rec['type'] == 'OC':
+ northing = float(rec['N ']) # extra whitespace
+ easting = float(rec['E ']) # extra whitespace
+ elevation = float(rec['EL'])
+ bp = BasePoint(x=easting, y=northing, z=elevation, ih=0)
+ base_points[rec['OP']] = bp
+ if rec['type'] == 'BK':
+ pid = rec['BP']
+ if rec['type'] == 'LS':
+ ih = float(rec['HI'])
+ th = float(rec['HR'])
+ if rec['type'] == 'SS':
+ pid = rec['FP']
+ angle = float(rec['AR'])
+ z_angle = float(rec['ZE'])
+ dist = float(rec['SD'])
+ desc = rec['note']
+ bp = base_points[rec['OP']]
+ bp.ih = ih
+ p = PolarPoint(dist=dist,
+ angle=angle,
+ z_angle=z_angle,
+ th=th,
+ angle_type='gon',
+ base_point=bp,
+ pid=pid,
+ text=desc,
+ coordorder='NEZ')
+ points.append(p.to_point().tuplepoint)
+ return points
+
+ points = property(_points)
diff --git a/totalopenstation/formats/leica_gsi.py b/totalopenstation/formats/leica_gsi.py
new file mode 100644
index 0000000..96dcfaf
--- /dev/null
+++ b/totalopenstation/formats/leica_gsi.py
@@ -0,0 +1,84 @@
+# -*- coding: utf-8 -*-
+# filename: formats/leica_gsi.py
+# Copyright 2012 Stefano Costa <steko at iosa.it>
+
+# This file is part of Total Open Station.
+
+# Total Open Station is free software: you can 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.
+
+# Total Open Station is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with Total Open Station. If not, see
+# <http://www.gnu.org/licenses/>.
+
+from . import Parser, Point
+from polar import BasePoint, PolarPoint
+
+
+class FormatParser(Parser):
+
+ def is_point(self, line):
+
+ # apparently GSI files are very "clean", and all lines contain data
+ return True
+
+ def get_point(self, line):
+ '''Extract GSI data.
+
+ Based on the "GSI ONLINE for Leica TPS" document.'''
+
+ tokens = line.split()
+ tdict = {}
+ for t in tokens:
+ t = t.lstrip('*')
+ data = {
+ 'wordindex': t[0:2],
+ 'info': t[2:6],
+ 'sign': t[6],
+ 'data': t[7:],
+ }
+ tdict[data['wordindex']] = data
+
+ try:
+ pid = tdict['11']['info']
+ text = tdict['11']['data'].lstrip('0')
+ except KeyError:
+ return None
+ try:
+ x = tdict['81']['sign'] + tdict['81']['data']
+ y = tdict['82']['sign'] + tdict['82']['data']
+ z = tdict['83']['sign'] + tdict['83']['data']
+ except KeyError:
+ try:
+ #angle_type = tdict['21']['info']
+ angle = float(tdict['21']['sign'] + tdict['21']['data'])/100000
+ z_angle = float(tdict['22']['sign'] + tdict['22']['data'])/100000
+ dist = float(tdict['31']['sign'] + tdict['31']['data'])/1000
+ th = float(tdict['87']['sign'] + tdict['87']['data'])/1000
+ ih = float(tdict['88']['sign'] + tdict['88']['data'])/1000
+ except KeyError:
+ return None
+ else:
+ bp = BasePoint(x=0.0, y=0.0, z=0.0, ih=ih)
+ p = PolarPoint(dist=dist,
+ angle=angle,
+ z_angle=z_angle,
+ th=th,
+ angle_type='deg',
+ base_point=bp,
+ pid=pid,
+ text=text,
+ coordorder='NEZ'
+ )
+ return p.to_point()
+ else:
+ x, y, z = [float(c)/1000 for c in (x, y, z)]
+ p = Point(pid, x, y, z, text)
+ return p
diff --git a/totalopenstation/formats/nikon_raw_v200.py b/totalopenstation/formats/nikon_raw_v200.py
index 62a8e0e..fe5b121 100644
--- a/totalopenstation/formats/nikon_raw_v200.py
+++ b/totalopenstation/formats/nikon_raw_v200.py
@@ -18,7 +18,7 @@
# along with Total Open Station. If not, see
# <http://www.gnu.org/licenses/>.
-from polar import BasePoint, PolarPoint
+from .polar import BasePoint, PolarPoint
class FormatParser:
@@ -61,7 +61,7 @@ class FormatParser:
pid=pid,
text=text,
coordorder=coordorder)
- points.append(p.to_point())
+ points.append(p.to_point().tuplepoint)
return points
points = property(_points)
diff --git a/totalopenstation/formats/polar.py b/totalopenstation/formats/polar.py
index 2aa0659..8cc12f5 100644
--- a/totalopenstation/formats/polar.py
+++ b/totalopenstation/formats/polar.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# filename: polar.py
-# Copyright 2010 Stefano Costa <steko at iosa.it>
+# Copyright 2010, 2014 Stefano Costa <steko at iosa.it>
# This file is part of Total Open Station.
@@ -18,7 +18,7 @@
# along with Total Open Station. If not, see
# <http://www.gnu.org/licenses/>.
-import math
+from math import cos, sin, radians
from . import Point
@@ -26,22 +26,28 @@ from . import Point
def polar_to_cartesian(base_x, base_y, base_z, dist, angle, z_angle, ih, th):
'''Convert polar coordinates to cartesian.
- Needs both base point coordinates and measurement angle and distance.
- Angles should be given in radiants.'''
+ Needs base point coordinates, measurement angles and distance.
+ Angles must be given in radians.
+
+ Some important caveats of the current implementation:
+
+ - the horizontal ``angle`` is hardcoded with zero azimuth at North
+ - the vertical ``z_angle`` is hardcoded with zero at zenith
+ '''
+
+ dist_r = sin(z_angle) * dist
+ target_x = base_x + cos(angle) * dist_r
+ target_y = base_y + sin(angle) * dist_r
+ target_z = base_z + ih + (cos(z_angle) * dist) - th
- rad_angle = angle
- rad_z_angle = z_angle
- dist_r = math.sin(rad_z_angle) * dist
- target_x = base_x + math.cos(rad_angle) * dist_r
- target_y = base_y + math.sin(rad_angle) * dist_r
- target_z = base_z + math.cos(rad_z_angle) * dist
- target_z = target_z + ih - th
return dict(x=target_x, y=target_y, z=target_z)
class PolarPoint:
'''A point geometry defined by polar coordinates.'''
+ COORDINATE_ORDER = ('NEZ', 'ENZ')
+
def __init__(self,
dist, # inclined distance
angle, # horizontal angle
@@ -51,38 +57,30 @@ class PolarPoint:
base_point, # BasePoint object
pid, # point ID
text, # point description
- coordorder='NEZ'): # cartesian coordinates order (NEZ, ENZ)
+ coordorder): # cartesian coordinates order (NEZ, ENZ)
self.dist = float(dist)
+ angle = float(angle)
+ z_angle = float(z_angle)
self.th = float(th)
self.angle_type = angle_type
- if angle_type is 'deg':
- self.angle = math.radians(float(angle))
- self.z_angle = math.radians(float(z_angle))
- if angle_type is 'gon':
- self.angle = math.radians(float(angle)*0.9)
- self.z_angle = math.radians(float(z_angle)*0.9)
+ if angle_type == 'deg':
+ self.angle = radians(angle)
+ self.z_angle = radians(z_angle)
+ if angle_type == 'gon':
+ self.angle = radians(angle * 0.9)
+ self.z_angle = radians(z_angle * 0.9)
self.pid = pid
self.text = text
- self.coordorder = coordorder
+ if any((coordorder == v for v in PolarPoint.COORDINATE_ORDER)):
+ self.coordorder = coordorder
+ else:
+ raise ValueError('Invalid coordinate order')
# base point data
self.base_x = base_point.x
self.base_y = base_point.y
self.base_z = base_point.z
self.ih = base_point.ih
- def to_cartesian(self):
- '''Converts from polar to cartesian.'''
-
- coords = polar_to_cartesian(self.base_x,
- self.base_y,
- self.base_z,
- self.dist,
- self.angle,
- self.z_angle,
- self.ih,
- self.th)
- return "%(x)s,%(y)s,%(z)s" % coords
-
def to_point(self):
'''Convert from PolarPoint to (cartesian) Point object'''
@@ -104,7 +102,7 @@ class PolarPoint:
cart_coords['z'],
self.text)
- return cart_point.tuplepoint
+ return cart_point
class BasePoint:
diff --git a/totalopenstation/formats/sokkia_sdr33.py b/totalopenstation/formats/sokkia_sdr33.py
new file mode 100644
index 0000000..1c7c8fa
--- /dev/null
+++ b/totalopenstation/formats/sokkia_sdr33.py
@@ -0,0 +1,47 @@
+# -*- coding: utf-8 -*-
+# filename: formats/sokkia_sdr33.py
+# Copyright 2014 Stefano Costa <steko at iosa.it>
+
+# This file is part of Total Open Station.
+
+# Total Open Station is free software: you can 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.
+
+# Total Open Station is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with Total Open Station. If not, see
+# <http://www.gnu.org/licenses/>.
+
+from . import Parser, Point
+
+
+class FormatParser(Parser):
+
+ def __init__(self, data):
+ Parser.__init__(self, data)
+
+ def is_point(self, line):
+ if line[2:4] == ('TP'):
+ return True
+ else:
+ return False
+
+ def get_point(self, line):
+ id = int(line[12:20])
+ y = float(line[20:32]) # Northing
+ x = float(line[32:48]) # Easting
+ z = float(line[48:63]) # Elevation
+
+ if line[0:2] == '02': # Base point
+ desc = line[78:86].strip()
+ if line[0:2] == '08': # Measurement
+ desc = line[63:70].strip()
+
+ p = Point(id, x, y, z, desc)
+ return p
diff --git a/totalopenstation/formats/topcon_gts.py b/totalopenstation/formats/topcon_gts.py
index 0aef8e3..5e7c0f4 100644
--- a/totalopenstation/formats/topcon_gts.py
+++ b/totalopenstation/formats/topcon_gts.py
@@ -64,7 +64,7 @@ class FormatParser:
pid=pid,
text=text,
coordorder=coordorder)
- points.append(p.to_point())
+ points.append(p.to_point().tuplepoint)
return points
points = property(_points)
diff --git a/totalopenstation/models/__init__.py b/totalopenstation/models/__init__.py
index e9be10a..6f67226 100644
--- a/totalopenstation/models/__init__.py
+++ b/totalopenstation/models/__init__.py
@@ -26,6 +26,7 @@ import sys
from time import sleep
from threading import Event, Thread
+from totalopenstation.utils.upref import UserPrefs
class Connector(serial.Serial, Thread):
@@ -33,6 +34,9 @@ class Connector(serial.Serial, Thread):
stopbits=1, timeout=None, xonxoff=0, rtscts=0,
writeTimeout=None, dsrdtr=None):
+ self.upref = UserPrefs()
+ sleeptime = self.upref.getvalue('sleeptime')
+
Thread.__init__(self)
self.dl_started = Event()
self.dl_finished = Event()
@@ -58,11 +62,11 @@ class Connector(serial.Serial, Thread):
# looks like there is a maximum buffer of 4096 characters, so we have
# to wait for a short time and iterate the process until finished
- sleep(0.1)
+ sleep(sleeptime)
while self.inWaiting() > 0:
result = result + self.read(self.inWaiting())
- sleep(0.3) # TODO determine sleep time from baudrate
+ sleep(sleeptime)
self.result = result
@@ -75,7 +79,7 @@ class Connector(serial.Serial, Thread):
'''
while self.inWaiting() == 0:
- sleep(0.1)
+ sleep(sleeptime)
self.dl_started.set()
try:
self.download()
diff --git a/totalopenstation/models/custom.py b/totalopenstation/models/custom.py
index 45e7a89..a938238 100644
--- a/totalopenstation/models/custom.py
+++ b/totalopenstation/models/custom.py
@@ -3,7 +3,23 @@
# filename: custom.py
# Copyright 2008 Luca Bianconi <luxetluc at yahoo.it>
# Copyright 2008,2011 Stefano Costa <steko at iosa.it>
-# Under the GNU GPL 3 License
+
+# This file is part of Total Open Station.
+
+# Total Open Station is free software: you can 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.
+
+# Total Open Station is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with Total Open Station. If not, see
+# <http://www.gnu.org/licenses/>.
+
from . import Connector
diff --git a/totalopenstation/models/leica_tcr_1205.py b/totalopenstation/models/leica_tcr_1205.py
index 656959f..8fdc6df 100644
--- a/totalopenstation/models/leica_tcr_1205.py
+++ b/totalopenstation/models/leica_tcr_1205.py
@@ -3,7 +3,23 @@
# filename: leica_tcr_1205.py
# Copyright 2008 Luca Bianconi <luxetluc at yahoo.it>
# Copyright 2008,2011 Stefano Costa <steko at iosa.it>
-# Under the GNU GPL 3 License
+
+# This file is part of Total Open Station.
+
+# Total Open Station is free software: you can 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.
+
+# Total Open Station is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with Total Open Station. If not, see
+# <http://www.gnu.org/licenses/>.
+
from . import *
diff --git a/totalopenstation/models/leica_tcr_705.py b/totalopenstation/models/leica_tcr_705.py
index f2e52dd..b52046c 100644
--- a/totalopenstation/models/leica_tcr_705.py
+++ b/totalopenstation/models/leica_tcr_705.py
@@ -3,7 +3,23 @@
# filename: leica_tcr_705.py
# Copyright 2009 Luca Bianconi <luxetluc at yahoo.it>
# Copyright 2009,2011 Stefano Costa <steko at iosa.it>
-# Under the GNU GPL 3 License
+
+# This file is part of Total Open Station.
+
+# Total Open Station is free software: you can 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.
+
+# Total Open Station is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with Total Open Station. If not, see
+# <http://www.gnu.org/licenses/>.
+
from . import *
diff --git a/totalopenstation/models/nikon_npl_350.py b/totalopenstation/models/nikon_npl_350.py
index 8027b66..a53e37b 100644
--- a/totalopenstation/models/nikon_npl_350.py
+++ b/totalopenstation/models/nikon_npl_350.py
@@ -2,7 +2,23 @@
# -*- coding: utf-8 -*-
# filename: nikon_npl_350.py
# Copyright 2008,2011 Stefano Costa <steko at iosa.it>
-# Under the GNU GPL 3 License
+
+# This file is part of Total Open Station.
+
+# Total Open Station is free software: you can 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.
+
+# Total Open Station is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with Total Open Station. If not, see
+# <http://www.gnu.org/licenses/>.
+
from . import *
diff --git a/totalopenstation/models/trimble.py b/totalopenstation/models/trimble.py
index 7deed2c..08ed5e6 100644
--- a/totalopenstation/models/trimble.py
+++ b/totalopenstation/models/trimble.py
@@ -4,7 +4,23 @@
# Copyright 2009 Luca Bianconi <luxetluc at yahoo.it>
# Copyright 2009,2011 Stefano Costa <steko at iosa.it>
# Copyright 2009 Alessandro Bezzi <alessandro.bezzi at arc-team.com>
-# Under the GNU GPL 3 License
+
+# This file is part of Total Open Station.
+
+# Total Open Station is free software: you can 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.
+
+# Total Open Station is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with Total Open Station. If not, see
+# <http://www.gnu.org/licenses/>.
+
from . import *
diff --git a/totalopenstation/models/zeiss_elta_r55.py b/totalopenstation/models/zeiss_elta_r55.py
index 521317d..bab8778 100644
--- a/totalopenstation/models/zeiss_elta_r55.py
+++ b/totalopenstation/models/zeiss_elta_r55.py
@@ -3,7 +3,23 @@
# filename: zeiss_elta_r55.py
# Copyright 2008 Luca Bianconi <luxetluc at yahoo.it>
# Copyright 2008-2011 Stefano Costa <steko at iosa.it>
-# Under the GNU GPL 3 License
+
+# This file is part of Total Open Station.
+
+# Total Open Station is free software: you can 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.
+
+# Total Open Station is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with Total Open Station. If not, see
+# <http://www.gnu.org/licenses/>.
+
from . import Connector
diff --git a/totalopenstation/output/tops_csv.py b/totalopenstation/output/tops_csv.py
index 7f156f1..6850c82 100644
--- a/totalopenstation/output/tops_csv.py
+++ b/totalopenstation/output/tops_csv.py
@@ -44,8 +44,3 @@ class OutputFormat:
self.writer.writerow(('PID', 'x', 'y', 'z', 'TEXT'))
self.writer.writerows(self.data)
return self.output.getvalue()
-
-if __name__ == "__main__":
- TotalOpenCSV(
- [(1, 2, 3, 4, 'qwerty'),
- ("2.3", 42, 45, 12, 'asdfg')])
diff --git a/totalopenstation/output/tops_dat.py b/totalopenstation/output/tops_dat.py
index fac54f5..34fe167 100644
--- a/totalopenstation/output/tops_dat.py
+++ b/totalopenstation/output/tops_dat.py
@@ -46,9 +46,3 @@ class OutputFormat:
lines = [to_dat(e) for e in self.data]
output = "".join(lines)
return output
-
-
-if __name__ == "__main__":
- TotalOpenDAT(
- [(1, 2, 3, 4, 'qwerty'),
- ("2.3", 42, 45, 12, 'asdfg')])
diff --git a/totalopenstation/output/tops_dxf.py b/totalopenstation/output/tops_dxf.py
index 7dec758..2080fd5 100644
--- a/totalopenstation/output/tops_dxf.py
+++ b/totalopenstation/output/tops_dxf.py
@@ -48,6 +48,13 @@ class OutputFormat:
result = ''
+ # header
+ result += '999\nDXF created from Total Open Station\n'
+ result += ' 0\nSECTION\n'
+ result += ' 2\nHEADER\n'
+ result += ' 9\n$ACADVER\n'
+ result += ' 1\nAC1009\n' # R11
+
# extract layer list
codes = set([p[4] for p in self.data])
codes = [c.replace('.','_') for c in codes]
@@ -127,9 +134,3 @@ class OutputFormat:
result += ' 0\nENDSEC\n 0\nEOF\n'
return result
-
-
-if __name__ == "__main__":
- TotalOpenDXF(
- [(1, 2, 3, 4, 'qwerty'),
- ("2.3", 42, 45, 12, 'asdfg')])
diff --git a/totalopenstation/output/tops_sql.py b/totalopenstation/output/tops_sql.py
index 97e79bf..c1e7b9f 100644
--- a/totalopenstation/output/tops_sql.py
+++ b/totalopenstation/output/tops_sql.py
@@ -67,9 +67,3 @@ class OutputFormat:
lines.append('COMMIT;\n')
output = "".join(lines)
return output
-
-if __name__ == "__main__":
- TotalOpenSQL(
- [(1, 2, 3, 4, 'qwerty'),
- ("2.3", 42, 45, 12, 'asdfg')],
- 'prova')
diff --git a/totalopenstation/output/tops_txt.py b/totalopenstation/output/tops_txt.py
index 9ebc997..29b85c3 100644
--- a/totalopenstation/output/tops_txt.py
+++ b/totalopenstation/output/tops_txt.py
@@ -44,9 +44,3 @@ class OutputFormat:
lines = [to_txt(e) for e in self.data]
output = "".join(lines)
return output
-
-if __name__ == "__main__":
- TotalOpenTXT(
- [(1, 2, 3, 4, 'qwerty'),
- ("2.3", 42, 45, 12, 'asdfg')],
- 'p.txt')
diff --git a/totalopenstation/tests/__init__.py b/totalopenstation/tests/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/totalopenstation/tests/test_polar.py b/totalopenstation/tests/test_polar.py
index 8d88dc1..3a60ce4 100644
--- a/totalopenstation/tests/test_polar.py
+++ b/totalopenstation/tests/test_polar.py
@@ -1,21 +1,40 @@
import unittest
+from totalopenstation.formats import Point
from totalopenstation.formats.polar import BasePoint, PolarPoint
class TestPolar(unittest.TestCase):
def setUp(self):
- self.bp0 = BasePoint(x=100.0, y=100.0, z=100.0, ih=0)
+ self.bp0 = BasePoint(x='0', y='0', z='0', ih='1.0')
- self.p0 = PolarPoint(dist=10,
- angle=0,
- z_angle=0,
+ self.p0 = PolarPoint(dist=9,
+ angle=180,
+ z_angle=90,
th=0,
angle_type='deg',
base_point=self.bp0,
pid=1,
- text='Test Point')
+ text='Test Point',
+ coordorder='NEZ')
+
+ self.p1 = PolarPoint(dist=24.567,
+ angle=34.120,
+ z_angle=100,
+ th=1.500,
+ angle_type='gon',
+ base_point=self.bp0,
+ pid=2,
+ text='Real Point',
+ coordorder='NEZ')
def test_polar(self):
- self.assertEqual(self.p0.to_cartesian(), '100.0,100.0,110.0')
+
+ for i, j in zip(self.p0.to_point().tuplepoint,
+ Point(1, 0.0, -9.0, 1.0, 'Test Point').tuplepoint):
+ self.assertAlmostEqual(i, j)
+
+ for i, j in zip(self.p1.to_point().tuplepoint,
+ Point(2, 12.5454572076, 21.1222392859, -0.5, 'Real Point').tuplepoint):
+ self.assertAlmostEqual(i, j)
diff --git a/totalopenstation/tests/test_rw5.py b/totalopenstation/tests/test_rw5.py
new file mode 100644
index 0000000..a220ca0
--- /dev/null
+++ b/totalopenstation/tests/test_rw5.py
@@ -0,0 +1,18 @@
+import unittest
+
+from totalopenstation.formats.carlson_rw5 import FormatParser
+
+class TestCarlsonRW5Parser(unittest.TestCase):
+ def setUp(self):
+ with open('sample_data/Leica1200.rw5') as testdata:
+ fp = FormatParser(testdata.read())
+ self.pts = list(fp.points)
+
+ def test_point(self):
+ self.assertEqual(self.pts[0][0], '108')
+ self.assertAlmostEqual(self.pts[0][2], 942130.662, places=3)
+ self.assertAlmostEqual(self.pts[0][1], 16556174.237, places=3)
+ self.assertAlmostEqual(self.pts[0][3], 20.053, places=3)
+ self.assertEqual(self.pts[0][4], 'FENCE1')
+ self.assertEqual(self.pts[1][4], 'LIGHT POLE')
+
diff --git a/totalopenstation/tests/test_sokkia_sdr33.py b/totalopenstation/tests/test_sokkia_sdr33.py
new file mode 100644
index 0000000..ce77e58
--- /dev/null
+++ b/totalopenstation/tests/test_sokkia_sdr33.py
@@ -0,0 +1,19 @@
+import unittest
+
+from totalopenstation.formats.sokkia_sdr33 import FormatParser
+
+
+class TestSokkiaParser(unittest.TestCase):
+
+ def setUp(self):
+ with open('sample_data/sokkia_sdr33.tops') as testdata:
+ self.fp = FormatParser(testdata.read())
+
+ def test_point(self):
+ self.assertEqual(self.fp.points[0][0], 31)
+ self.assertAlmostEqual(self.fp.points[0][2], 509.970)
+ self.assertAlmostEqual(self.fp.points[0][1], 937.274)
+ self.assertAlmostEqual(self.fp.points[0][3], 20.053)
+ self.assertEqual(self.fp.points[0][4], '11')
+ self.assertEqual(self.fp.points[1][4], '11')
+
diff --git a/totalopenstation/utils/upref.py b/totalopenstation/utils/upref.py
index 717c5f8..2b11201 100644
--- a/totalopenstation/utils/upref.py
+++ b/totalopenstation/utils/upref.py
@@ -1,7 +1,7 @@
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# filename: upref.py
-# Copyright 2010 Stefano Costa <steko at iosa.it>
+# Copyright 2010,2013 Stefano Costa <steko at iosa.it>
# Copyright 2010 Luca Bianconi <luxetluc at yahoo.it>
#
# This file is part of Total Open Station.
@@ -21,10 +21,11 @@
# <http://www.gnu.org/licenses/>.
import atexit
+import logging
import os
import os.path
-from ConfigParser import ConfigParser, NoSectionError
+from ConfigParser import ConfigParser, NoSectionError, NoOptionError
class UserPrefs(ConfigParser):
@@ -36,6 +37,11 @@ class UserPrefs(ConfigParser):
* returns a dictionary of user preferences
* preferences will be set through a dictionary as well'''
+ OPTIONS = {
+ 'model': '',
+ 'port': '',
+ 'sleeptime': 1.0, # added in 0.3.1
+ }
def __init__(self):
@@ -59,11 +65,11 @@ class UserPrefs(ConfigParser):
def initfile(self):
self.write()
- print('User preferences do not exist!')
+ logging.info('User preferences do not exist!')
self.add_section('topsconfig')
- self.set('topsconfig', 'model','')
- self.set('topsconfig', 'port', '')
- print('Created new user preferences file')
+ for k,v in self.OPTIONS.items():
+ self.set('topsconfig', k, v)
+ logging.info('Created new user preferences file with default values')
def write(self):
''' override ConfigParser.write() method '''
@@ -73,20 +79,25 @@ class UserPrefs(ConfigParser):
def getdict(self):
''' get config file values '''
- model = self.get('topsconfig', 'model')
- port = self.get('topsconfig', 'port')
+ current_options = {}
+ for k in self.OPTIONS.keys():
+ current_options[k] = self.getvalue(k)
- return {'model':model , 'port': port}
+ return current_options
- def getvalue(self, value):
+ def getvalue(self, key):
''' get specific config file value '''
- return self.get('topsconfig', value)
+ try:
+ value = self.get('topsconfig', key)
+ except NoOptionError:
+ value = self.OPTIONS[key] # use default value
+ return value
def setvalues(self, values):
''' set specific config file value '''
- self.set('topsconfig', 'model', values['model'])
- self.set('topsconfig', 'port', values['port'])
+ for k, v in values.items():
+ self.set('topsconfig', k, v)
self.write()
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/totalopenstation.git
More information about the Pkg-grass-devel
mailing list