Index: lasspath
===================================================================
--- /.classpath	(revision 320)
+++ 	(revision )
@@ -1,13 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="test/functional"/>
-	<classpathentry kind="src" path="test/unit"/>
-	<classpathentry excluding="build/|dist/|src/|test/" including="images/" kind="src" path=""/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="lib" path="lib/metadata-extractor-2.3.1.jar"/>
-	<classpathentry kind="lib" path="lib/gettext-commons-0.9.jar" sourcepath="C:/Download/gettext-commons-0.9-src.zip"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
-	<classpathentry kind="lib" path="lib/jfcunit.jar" sourcepath="/home/imi/programs/jfcunit/src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
Index: roject
===================================================================
--- /.project	(revision 320)
+++ 	(revision )
@@ -1,17 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>JOSM</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
Index: NTRIBUTION
===================================================================
--- /CONTRIBUTION	(revision 320)
+++ 	(revision )
@@ -1,73 +1,0 @@
-The XML Parser is MinML2 from 
-http://www.wilson.co.uk/xml/minml2.htm. The license is 
-attached below.
-
-The jpeg metadata extraction code is from Drew Noakes
-(http://drewnoakes.com/code/exif).
-
-Most icons are inspired and stolen from gnome-media package 
-of my local linux installation. The images are licensed 
-under LGPL but redistributed by me under the terms of GPL
-2.0. The world image is from onearth.pl.
-
-The gettext-commons-0.9.jar is from Felix Berger and Steffen 
-Pingel (http://xnap-commons.sourceforge.net/gettext-commons/).
-The jar-file is licensed under LGPL.
-
-Some plugins (hosted elsewhere) are from Nick Whitelegg.
-Frederik Ramm did some of the actions and the MarkerLayer.
-Several smaller patches are contributed by community members
-of OSM.
-
-Internalisation:
-German: Sven Anders <sven@anders-hamburg.de>
-French: Frédéric Bonifas <fredericbonifas@gmail.com>
-Romanian: Ovidiu Constantin
-British: Bruce Cowan
-
-
-All the rest are belong to me.
-
-
-Imi.
-
-
-
-All content of MinML2.jar is licensed under:
-----------------MinML2 license--------------------
-Copyright (c) 1999, John Wilson (tug@wilson.co.uk). 
-All rights reserved.
-Redistribution and use in source and binary forms,
-with or without modification, are permitted provided
-that the following conditions are met:
-
-Redistributions of source code must retain the above
-copyright notice, this list of conditions and the
-following disclaimer.
-
-Redistributions in binary form must reproduce the
-above copyright notice, this list of conditions and
-the following disclaimer in the documentation and/or
-other materials provided with the distribution.
-
-All advertising materials mentioning features or use
-of this software must display the following acknowledgement: 
-
-This product includes software developed by John Wilson. 
-The name of John Wilson may not be used to endorse or promote
-products derived from this software without specific prior
-written permission. 
-
-THIS SOFTWARE IS PROVIDED BY JOHN WILSON ``AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JOHN WILSON
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
-OF THE POSSIBILITY OF SUCH DAMAGE
---------------------------------------------------
Index: CENSE
===================================================================
--- /LICENSE	(revision 320)
+++ 	(revision )
@@ -1,354 +1,0 @@
-JOSM and all files included in this archive and the source archive from
-
-http://www.eigenheimstrasse.de/svn/josm
-
-except the JDOM files, MinML2 files and parts of UTM.java are
-copyrighted 2005-2006 by Immanuel Scholz.
-The files are distributed under the terms of the following License:
-
-
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-	51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-
-	    How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year  name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
Index: ADME
===================================================================
--- /README	(revision 320)
+++ 	(revision )
@@ -1,72 +1,0 @@
-This is a readme.txt to the Java OpenStreetMap Editor
-
-
-Install Notes
--------------
-
-To run JOSM, you need:
-
-* The jar file (e.g. josm.jar)
-* The latest Java Runtime Environment 1.5. 
-
-
-How to get Java
----------------
-
-You need at least Version 1.5 (called Java5 or "Tiger"). 
-
-Microsoft Windows people should just visit java.sun.com and
-download the latest Java5 executable. 
-
-To get Java under linux, I recommend downloading the environment 
-directly from Sun at http://java.sun.com. There is a linux 
-binary installer which you have to execute from a console.
-
-However, if you run Debian or Ubuntu or any other dpkg-based
-distribution, you may use unofficial precompiled packages.
-You have to add the following line to your /etc/apt/sources.list
-(replace "stable" with your installation)
-
-deb http://ftp.debian-unofficial.org/debian/ stable non-free
-
-The package is called sun-j2se5.0-jre-binary.
-
-For MacOS user: There is an installer for Mac OS X 10.4:
-http://www.apple.com/support/downloads/java2se50release1.html
-
-Sorry, there is no Version of Java5 for Mac OS X 10.3 available :-(
-
-
-How to launch
--------------
-
-Microsoft Windows people launch by double clicking on the jar file.
-If this does not help, open a command shell and type 
-"java -jar josm-latest.jar" in the directory that holds the file.
-(Please replace josm-latest.jar with the name of your jar file, if
-you don't used the latest version.)
-
-Under Linux open a shell, go to the file directory and type
-"java -jar josm-latest.jar" to launch. If this don't help, try to set
-you JAVA_HOME variable to the java location (the root location, not
-the bin. "/usr/lib/sun-j2se5.0-jdk" if you used the prebuild 
-package).
-
-MacOS people just click on the jar-file.
-
-
-How to get the Source
----------------------
-
-Download it directly from the subversion at 
-http://www.eigenheimstrasse.de/svn/josm. To use the command line
-subverion client, type
-
-svn co http://www.eigenheimstrasse.de/svn/josm
-
-
-And gimme feedback: josm@eigenheimstrasse.de (start your mail subject 
-with "JOSM", so my spam filter will not eat you)
-
-
-Ciao, Imi.
Index: ild.xml
===================================================================
--- /build.xml	(revision 320)
+++ 	(revision )
@@ -1,51 +1,0 @@
-<project name="josm" default="dist" basedir=".">
-
-	<!-- All jar files necessary to run only JOSM (no tests) -->
-	<fileset id="josm_required_libs" dir="lib">
-		<include name="gettext-commons-0.9.jar"/>
-		<include name="metadata-extractor-2.3.1.jar"/>
-	</fileset>
-
-	<!-- Java classpath addition (all jar files to compile tests with this) -->
-	<path id="classpath">
-		<fileset dir="lib">
-			<include name="**/*.jar"/>
-		</fileset>
-	</path>
-
-	<target name="dist" depends="compile">
-		<!-- jars -->
-		<unjar dest="build">
-			<fileset refid="josm_required_libs" />
-		</unjar>
-
-		<!-- images -->
-		<copy todir="build/images">
-			<fileset dir="images" />
-		</copy>
-
-		<!-- create josm-custom.jar -->
-		<jar destfile="dist/josm-custom.jar" basedir="build">
-			<manifest>
-				<attribute name="Main-class" value="org.openstreetmap.josm.gui.MainApplication" />
-			</manifest>
-		</jar>
-	</target>
-
-	<target name="compile" depends="init">
-		<javac srcdir="src" classpathref="classpath" destdir="build" />
-	</target>
-
-
-
-	<target name="init">
-		<mkdir dir="build" />
-		<mkdir dir="dist" />
-	</target>
-
-	<target name="clean">
-		<delete dir="build" />
-		<delete dir="dist" />
-	</target>
-
-</project>
Index: art.html
===================================================================
--- /start.html	(revision 320)
+++ 	(revision )
@@ -1,8 +1,0 @@
-<applet 
-  code="org/openstreetmap/josm/gui/MainApplet.class" 
-  archive="dist/josm-custom.jar,lib/gettext-commons-0.9.jar,lib/metadata-extractor-2.3.1.jar,lib/MinML2.jar" 
-  width="800" 
-  height="600"
-  username="foo"
-  password="bar"
-/>
Index: /trunk/.classpath
===================================================================
--- /trunk/.classpath	(revision 321)
+++ /trunk/.classpath	(revision 321)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="test/functional"/>
+	<classpathentry kind="src" path="test/unit"/>
+	<classpathentry excluding="build/|dist/|src/|test/" including="images/" kind="src" path=""/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="lib" path="lib/metadata-extractor-2.3.1.jar"/>
+	<classpathentry kind="lib" path="lib/gettext-commons-0.9.jar" sourcepath="C:/Download/gettext-commons-0.9-src.zip"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
+	<classpathentry kind="lib" path="lib/jfcunit.jar" sourcepath="/home/imi/programs/jfcunit/src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
Index: /trunk/.project
===================================================================
--- /trunk/.project	(revision 321)
+++ /trunk/.project	(revision 321)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>JOSM</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
Index: /trunk/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- /trunk/.settings/org.eclipse.jdt.core.prefs	(revision 321)
+++ /trunk/.settings/org.eclipse.jdt.core.prefs	(revision 321)
@@ -0,0 +1,302 @@
+#Tue Aug 07 22:54:52 GMT+01:00 2007
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=error
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=ignore
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=1
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
+org.eclipse.jdt.core.formatter.comment.format_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=80
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=true
Index: /trunk/.settings/org.eclipse.jdt.ui.prefs
===================================================================
--- /trunk/.settings/org.eclipse.jdt.ui.prefs	(revision 321)
+++ /trunk/.settings/org.eclipse.jdt.ui.prefs	(revision 321)
@@ -0,0 +1,5 @@
+#Wed Aug 08 13:31:47 GMT+01:00 2007
+eclipse.preferences.version=1
+formatter_profile=_josm
+formatter_settings_version=10
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">// License\: GPL. Copyright 2007 by Immanuel Scholz and others\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">// License\: GPL. Copyright 2007 by Immanuel Scholz and others\n${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
Index: /trunk/CONTRIBUTION
===================================================================
--- /trunk/CONTRIBUTION	(revision 321)
+++ /trunk/CONTRIBUTION	(revision 321)
@@ -0,0 +1,73 @@
+The XML Parser is MinML2 from 
+http://www.wilson.co.uk/xml/minml2.htm. The license is 
+attached below.
+
+The jpeg metadata extraction code is from Drew Noakes
+(http://drewnoakes.com/code/exif).
+
+Most icons are inspired and stolen from gnome-media package 
+of my local linux installation. The images are licensed 
+under LGPL but redistributed by me under the terms of GPL
+2.0. The world image is from onearth.pl.
+
+The gettext-commons-0.9.jar is from Felix Berger and Steffen 
+Pingel (http://xnap-commons.sourceforge.net/gettext-commons/).
+The jar-file is licensed under LGPL.
+
+Some plugins (hosted elsewhere) are from Nick Whitelegg.
+Frederik Ramm did some of the actions and the MarkerLayer.
+Several smaller patches are contributed by community members
+of OSM.
+
+Internalisation:
+German: Sven Anders <sven@anders-hamburg.de>
+French: Frédéric Bonifas <fredericbonifas@gmail.com>
+Romanian: Ovidiu Constantin
+British: Bruce Cowan
+
+
+All the rest are belong to me.
+
+
+Imi.
+
+
+
+All content of MinML2.jar is licensed under:
+----------------MinML2 license--------------------
+Copyright (c) 1999, John Wilson (tug@wilson.co.uk). 
+All rights reserved.
+Redistribution and use in source and binary forms,
+with or without modification, are permitted provided
+that the following conditions are met:
+
+Redistributions of source code must retain the above
+copyright notice, this list of conditions and the
+following disclaimer.
+
+Redistributions in binary form must reproduce the
+above copyright notice, this list of conditions and
+the following disclaimer in the documentation and/or
+other materials provided with the distribution.
+
+All advertising materials mentioning features or use
+of this software must display the following acknowledgement: 
+
+This product includes software developed by John Wilson. 
+The name of John Wilson may not be used to endorse or promote
+products derived from this software without specific prior
+written permission. 
+
+THIS SOFTWARE IS PROVIDED BY JOHN WILSON ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JOHN WILSON
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE
+--------------------------------------------------
Index: /trunk/LICENSE
===================================================================
--- /trunk/LICENSE	(revision 321)
+++ /trunk/LICENSE	(revision 321)
@@ -0,0 +1,354 @@
+JOSM and all files included in this archive and the source archive from
+
+http://www.eigenheimstrasse.de/svn/josm
+
+except the JDOM files, MinML2 files and parts of UTM.java are
+copyrighted 2005-2006 by Immanuel Scholz.
+The files are distributed under the terms of the following License:
+
+
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+	51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year  name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
Index: /trunk/README
===================================================================
--- /trunk/README	(revision 321)
+++ /trunk/README	(revision 321)
@@ -0,0 +1,72 @@
+This is a readme.txt to the Java OpenStreetMap Editor
+
+
+Install Notes
+-------------
+
+To run JOSM, you need:
+
+* The jar file (e.g. josm.jar)
+* The latest Java Runtime Environment 1.5. 
+
+
+How to get Java
+---------------
+
+You need at least Version 1.5 (called Java5 or "Tiger"). 
+
+Microsoft Windows people should just visit java.sun.com and
+download the latest Java5 executable. 
+
+To get Java under linux, I recommend downloading the environment 
+directly from Sun at http://java.sun.com. There is a linux 
+binary installer which you have to execute from a console.
+
+However, if you run Debian or Ubuntu or any other dpkg-based
+distribution, you may use unofficial precompiled packages.
+You have to add the following line to your /etc/apt/sources.list
+(replace "stable" with your installation)
+
+deb http://ftp.debian-unofficial.org/debian/ stable non-free
+
+The package is called sun-j2se5.0-jre-binary.
+
+For MacOS user: There is an installer for Mac OS X 10.4:
+http://www.apple.com/support/downloads/java2se50release1.html
+
+Sorry, there is no Version of Java5 for Mac OS X 10.3 available :-(
+
+
+How to launch
+-------------
+
+Microsoft Windows people launch by double clicking on the jar file.
+If this does not help, open a command shell and type 
+"java -jar josm-latest.jar" in the directory that holds the file.
+(Please replace josm-latest.jar with the name of your jar file, if
+you don't used the latest version.)
+
+Under Linux open a shell, go to the file directory and type
+"java -jar josm-latest.jar" to launch. If this don't help, try to set
+you JAVA_HOME variable to the java location (the root location, not
+the bin. "/usr/lib/sun-j2se5.0-jdk" if you used the prebuild 
+package).
+
+MacOS people just click on the jar-file.
+
+
+How to get the Source
+---------------------
+
+Download it directly from the subversion at 
+http://www.eigenheimstrasse.de/svn/josm. To use the command line
+subverion client, type
+
+svn co http://www.eigenheimstrasse.de/svn/josm
+
+
+And gimme feedback: josm@eigenheimstrasse.de (start your mail subject 
+with "JOSM", so my spam filter will not eat you)
+
+
+Ciao, Imi.
Index: /trunk/build.xml
===================================================================
--- /trunk/build.xml	(revision 321)
+++ /trunk/build.xml	(revision 321)
@@ -0,0 +1,51 @@
+<project name="josm" default="dist" basedir=".">
+
+	<!-- All jar files necessary to run only JOSM (no tests) -->
+	<fileset id="josm_required_libs" dir="lib">
+		<include name="gettext-commons-0.9.jar"/>
+		<include name="metadata-extractor-2.3.1.jar"/>
+	</fileset>
+
+	<!-- Java classpath addition (all jar files to compile tests with this) -->
+	<path id="classpath">
+		<fileset dir="lib">
+			<include name="**/*.jar"/>
+		</fileset>
+	</path>
+
+	<target name="dist" depends="compile">
+		<!-- jars -->
+		<unjar dest="build">
+			<fileset refid="josm_required_libs" />
+		</unjar>
+
+		<!-- images -->
+		<copy todir="build/images">
+			<fileset dir="images" />
+		</copy>
+
+		<!-- create josm-custom.jar -->
+		<jar destfile="dist/josm-custom.jar" basedir="build">
+			<manifest>
+				<attribute name="Main-class" value="org.openstreetmap.josm.gui.MainApplication" />
+			</manifest>
+		</jar>
+	</target>
+
+	<target name="compile" depends="init">
+		<javac srcdir="src" classpathref="classpath" destdir="build" />
+	</target>
+
+
+
+	<target name="init">
+		<mkdir dir="build" />
+		<mkdir dir="dist" />
+	</target>
+
+	<target name="clean">
+		<delete dir="build" />
+		<delete dir="dist" />
+	</target>
+
+</project>
Index: /trunk/data/csv.style
===================================================================
--- /trunk/data/csv.style	(revision 321)
+++ /trunk/data/csv.style	(revision 321)
@@ -0,0 +1,8 @@
+FIELD_DELIMITER		WHITESPACE
+RECORD_DELIMITER	NEWLINE
+BADCHARS		COMMA
+
+IFIELD LAT_DECIMAL, "", "%f"
+IFIELD LON_DECIMAL, "", "%f"
+IFIELD ALT_METERS, "", "%f"
+IFIELD IGNORE, "", ""
Index: /trunk/data/empty.xml
===================================================================
--- /trunk/data/empty.xml	(revision 321)
+++ /trunk/data/empty.xml	(revision 321)
@@ -0,0 +1,3 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<osm version='0.3' generator='JOSM'>
+</osm>
Index: /trunk/data/munich.gpx
===================================================================
--- /trunk/data/munich.gpx	(revision 321)
+++ /trunk/data/munich.gpx	(revision 321)
@@ -0,0 +1,41363 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gpx xmlns="http://www.topografix.com/GPX/1/0" xmlns:osm="http://www.openstreetmap.org" version="1.0" creator="JOSM Beta">
+  <trk>
+    <name>86739</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129010&#xA;      &#xA;      &#xA;        129011&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20506286621094" lon="11.456117630004883">
+        <name>129010</name>
+      </trkpt>
+      <trkpt lat="48.20536804199219" lon="11.458573341369629">
+        <name>129011</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87588</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129858&#xA;      &#xA;      &#xA;        129859&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15699768066406" lon="11.424952507019043">
+        <name>129858</name>
+      </trkpt>
+      <trkpt lat="48.1568717956543" lon="11.424266815185547">
+        <name>129859</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90135</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132314&#xA;      &#xA;      &#xA;        132315&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23284912109375" lon="11.441305160522461">
+        <name>132314</name>
+      </trkpt>
+      <trkpt lat="48.23427200317383" lon="11.444162368774414">
+        <name>132315</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105559</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147111&#xA;      &#xA;      &#xA;        147112&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1252555847168" lon="11.444718360900879">
+        <name>147111</name>
+      </trkpt>
+      <trkpt lat="48.125064849853516" lon="11.442891120910645">
+        <name>147112</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89994</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132183&#xA;      &#xA;      &#xA;        132184&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.206912994384766" lon="11.385563850402832">
+        <name>132183</name>
+      </trkpt>
+      <trkpt lat="48.2070426940918" lon="11.382288932800293">
+        <name>132184</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87730</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129985&#xA;      &#xA;      &#xA;        129986&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16291427612305" lon="11.441009521484375">
+        <name>129985</name>
+      </trkpt>
+      <trkpt lat="48.16281509399414" lon="11.43921947479248">
+        <name>129986</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86740</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129007&#xA;      &#xA;      &#xA;        129008&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20488739013672" lon="11.456193923950195">
+        <name>129007</name>
+      </trkpt>
+      <trkpt lat="48.2051887512207" lon="11.458612442016602">
+        <name>129008</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90136</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132315&#xA;      &#xA;      &#xA;        132316&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23427200317383" lon="11.444162368774414">
+        <name>132315</name>
+      </trkpt>
+      <trkpt lat="48.2356071472168" lon="11.446189880371094">
+        <name>132316</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105560</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147112&#xA;      &#xA;      &#xA;        147113&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.125064849853516" lon="11.442891120910645">
+        <name>147112</name>
+      </trkpt>
+      <trkpt lat="48.125160217285156" lon="11.441462516784668">
+        <name>147113</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89995</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132184&#xA;      &#xA;      &#xA;        132185&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2070426940918" lon="11.382288932800293">
+        <name>132184</name>
+      </trkpt>
+      <trkpt lat="48.20742416381836" lon="11.382231712341309">
+        <name>132185</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87731</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129986&#xA;      &#xA;      &#xA;        129983&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16281509399414" lon="11.43921947479248">
+        <name>129986</name>
+      </trkpt>
+      <trkpt lat="48.16288757324219" lon="11.437276840209961">
+        <name>129983</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85892</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128215&#xA;      &#xA;      &#xA;        128216&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.197452545166016" lon="11.354342460632324">
+        <name>128215</name>
+      </trkpt>
+      <trkpt lat="48.196815490722656" lon="11.356856346130371">
+        <name>128216</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86741</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129008&#xA;      &#xA;      &#xA;        129013&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2051887512207" lon="11.458612442016602">
+        <name>129008</name>
+      </trkpt>
+      <trkpt lat="48.20819854736328" lon="11.461540222167969">
+        <name>129013</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90137</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132316&#xA;      &#xA;      &#xA;        132317&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2356071472168" lon="11.446189880371094">
+        <name>132316</name>
+      </trkpt>
+      <trkpt lat="48.23741149902344" lon="11.448446273803711">
+        <name>132317</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105561</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147113&#xA;      &#xA;      &#xA;        147114&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.125160217285156" lon="11.441462516784668">
+        <name>147113</name>
+      </trkpt>
+      <trkpt lat="48.12552261352539" lon="11.439862251281738">
+        <name>147114</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89996</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132185&#xA;      &#xA;      &#xA;        132186&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20742416381836" lon="11.382231712341309">
+        <name>132185</name>
+      </trkpt>
+      <trkpt lat="48.20787811279297" lon="11.381831169128418">
+        <name>132186</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87732</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129981&#xA;      &#xA;      &#xA;        129993&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.161468505859375" lon="11.43708610534668">
+        <name>129981</name>
+      </trkpt>
+      <trkpt lat="48.161746978759766" lon="11.436477661132812">
+        <name>129993</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85893</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128216&#xA;      &#xA;      &#xA;        128217&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.196815490722656" lon="11.356856346130371">
+        <name>128216</name>
+      </trkpt>
+      <trkpt lat="48.19658279418945" lon="11.358247756958008">
+        <name>128217</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86742</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129011&#xA;      &#xA;      &#xA;        129012&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20536804199219" lon="11.458573341369629">
+        <name>129011</name>
+      </trkpt>
+      <trkpt lat="48.208370208740234" lon="11.461411476135254">
+        <name>129012</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87591</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129861&#xA;      &#xA;      &#xA;        128282&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15625" lon="11.421810150146484">
+        <name>129861</name>
+      </trkpt>
+      <trkpt lat="48.155765533447266" lon="11.4202299118042">
+        <name>128282</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90138</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132317&#xA;      &#xA;      &#xA;        132318&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23741149902344" lon="11.448446273803711">
+        <name>132317</name>
+      </trkpt>
+      <trkpt lat="48.239315032958984" lon="11.450504302978516">
+        <name>132318</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105562</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147114&#xA;      &#xA;      &#xA;        147115&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12552261352539" lon="11.439862251281738">
+        <name>147114</name>
+      </trkpt>
+      <trkpt lat="48.126399993896484" lon="11.437920570373535">
+        <name>147115</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87733</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129993&#xA;      &#xA;      &#xA;        129992&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.161746978759766" lon="11.436477661132812">
+        <name>129993</name>
+      </trkpt>
+      <trkpt lat="48.161808013916016" lon="11.436019897460938">
+        <name>129992</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89997</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132186&#xA;      &#xA;      &#xA;        132187&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20787811279297" lon="11.381831169128418">
+        <name>132186</name>
+      </trkpt>
+      <trkpt lat="48.20823287963867" lon="11.381088256835938">
+        <name>132187</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105138</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146679&#xA;      &#xA;      &#xA;        146687&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19567108154297" lon="11.682172775268555">
+        <name>146679</name>
+      </trkpt>
+      <trkpt lat="48.19449234008789" lon="11.686943054199219">
+        <name>146687</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85894</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128217&#xA;      &#xA;      &#xA;        128218&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19658279418945" lon="11.358247756958008">
+        <name>128217</name>
+      </trkpt>
+      <trkpt lat="48.196380615234375" lon="11.359848022460938">
+        <name>128218</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86743</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129012&#xA;      &#xA;      &#xA;        129014&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.208370208740234" lon="11.461411476135254">
+        <name>129012</name>
+      </trkpt>
+      <trkpt lat="48.20899963378906" lon="11.463811874389648">
+        <name>129014</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90139</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132318&#xA;      &#xA;      &#xA;        132319&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.239315032958984" lon="11.450504302978516">
+        <name>132318</name>
+      </trkpt>
+      <trkpt lat="48.24026870727539" lon="11.451703071594238">
+        <name>132319</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105563</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147115&#xA;      &#xA;      &#xA;        147116&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.126399993896484" lon="11.437920570373535">
+        <name>147115</name>
+      </trkpt>
+      <trkpt lat="48.126976013183594" lon="11.43697738647461">
+        <name>147116</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87734</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129992&#xA;      &#xA;      &#xA;        129991&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.161808013916016" lon="11.436019897460938">
+        <name>129992</name>
+      </trkpt>
+      <trkpt lat="48.16197204589844" lon="11.435981750488281">
+        <name>129991</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89998</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132187&#xA;      &#xA;      &#xA;        132188&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20823287963867" lon="11.381088256835938">
+        <name>132187</name>
+      </trkpt>
+      <trkpt lat="48.20854949951172" lon="11.380002975463867">
+        <name>132188</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105139</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146687&#xA;      &#xA;      &#xA;        146688&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19449234008789" lon="11.686943054199219">
+        <name>146687</name>
+      </trkpt>
+      <trkpt lat="48.19340515136719" lon="11.692255973815918">
+        <name>146688</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85895</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128218&#xA;      &#xA;      &#xA;        128219&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.196380615234375" lon="11.359848022460938">
+        <name>128218</name>
+      </trkpt>
+      <trkpt lat="48.195831298828125" lon="11.361104011535645">
+        <name>128219</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86744</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129014&#xA;      &#xA;      &#xA;        129015&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20899963378906" lon="11.463811874389648">
+        <name>129014</name>
+      </trkpt>
+      <trkpt lat="48.20960998535156" lon="11.466525077819824">
+        <name>129015</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90140</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132319&#xA;      &#xA;      &#xA;        132320&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24026870727539" lon="11.451703071594238">
+        <name>132319</name>
+      </trkpt>
+      <trkpt lat="48.24140930175781" lon="11.453845977783203">
+        <name>132320</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105564</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147116&#xA;      &#xA;      &#xA;        147117&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.126976013183594" lon="11.43697738647461">
+        <name>147116</name>
+      </trkpt>
+      <trkpt lat="48.12785339355469" lon="11.435206413269043">
+        <name>147117</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87735</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129991&#xA;      &#xA;      &#xA;        129990&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16197204589844" lon="11.435981750488281">
+        <name>129991</name>
+      </trkpt>
+      <trkpt lat="48.16217803955078" lon="11.436266899108887">
+        <name>129990</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89999</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132188&#xA;      &#xA;      &#xA;        132189&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20854949951172" lon="11.380002975463867">
+        <name>132188</name>
+      </trkpt>
+      <trkpt lat="48.208839416503906" lon="11.379411697387695">
+        <name>132189</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105140</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146688&#xA;      &#xA;      &#xA;        146691&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19340515136719" lon="11.692255973815918">
+        <name>146688</name>
+      </trkpt>
+      <trkpt lat="48.192588806152344" lon="11.696626663208008">
+        <name>146691</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85896</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128219&#xA;      &#xA;      &#xA;        128220&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.195831298828125" lon="11.361104011535645">
+        <name>128219</name>
+      </trkpt>
+      <trkpt lat="48.19512939453125" lon="11.363696098327637">
+        <name>128220</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86745</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129015&#xA;      &#xA;      &#xA;        129016&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20960998535156" lon="11.466525077819824">
+        <name>129015</name>
+      </trkpt>
+      <trkpt lat="48.2098388671875" lon="11.468038558959961">
+        <name>129016</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90141</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132320&#xA;      &#xA;      &#xA;        132321&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24140930175781" lon="11.453845977783203">
+        <name>132320</name>
+      </trkpt>
+      <trkpt lat="48.24211120605469" lon="11.456016540527344">
+        <name>132321</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105565</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147117&#xA;      &#xA;      &#xA;        147119&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12785339355469" lon="11.435206413269043">
+        <name>147117</name>
+      </trkpt>
+      <trkpt lat="48.12855529785156" lon="11.433406829833984">
+        <name>147119</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87736</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129990&#xA;      &#xA;      &#xA;        129989&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16217803955078" lon="11.436266899108887">
+        <name>129990</name>
+      </trkpt>
+      <trkpt lat="48.163551330566406" lon="11.436266899108887">
+        <name>129989</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90000</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132189&#xA;      &#xA;      &#xA;        132190&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.208839416503906" lon="11.379411697387695">
+        <name>132189</name>
+      </trkpt>
+      <trkpt lat="48.20924758911133" lon="11.378993034362793">
+        <name>132190</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105141</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146691&#xA;      &#xA;      &#xA;        146694&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.192588806152344" lon="11.696626663208008">
+        <name>146691</name>
+      </trkpt>
+      <trkpt lat="48.1915397644043" lon="11.70136833190918">
+        <name>146694</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85897</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128220&#xA;      &#xA;      &#xA;        128221&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19512939453125" lon="11.363696098327637">
+        <name>128220</name>
+      </trkpt>
+      <trkpt lat="48.194393157958984" lon="11.365962028503418">
+        <name>128221</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86746</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129016&#xA;      &#xA;      &#xA;        129017&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2098388671875" lon="11.468038558959961">
+        <name>129016</name>
+      </trkpt>
+      <trkpt lat="48.20991134643555" lon="11.47098159790039">
+        <name>129017</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87595</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129864&#xA;      &#xA;      &#xA;        129865&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155853271484375" lon="11.42308235168457">
+        <name>129864</name>
+      </trkpt>
+      <trkpt lat="48.15622329711914" lon="11.42282772064209">
+        <name>129865</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90142</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132321&#xA;      &#xA;      &#xA;        132322&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24211120605469" lon="11.456016540527344">
+        <name>132321</name>
+      </trkpt>
+      <trkpt lat="48.24245071411133" lon="11.458816528320312">
+        <name>132322</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105566</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147119&#xA;      &#xA;      &#xA;        147121&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12855529785156" lon="11.433406829833984">
+        <name>147119</name>
+      </trkpt>
+      <trkpt lat="48.12887954711914" lon="11.43274974822998">
+        <name>147121</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87737</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129989&#xA;      &#xA;      &#xA;        129984&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.163551330566406" lon="11.436266899108887">
+        <name>129989</name>
+      </trkpt>
+      <trkpt lat="48.16349792480469" lon="11.437353134155273">
+        <name>129984</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90001</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132190&#xA;      &#xA;      &#xA;        132191&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20924758911133" lon="11.378993034362793">
+        <name>132190</name>
+      </trkpt>
+      <trkpt lat="48.210811614990234" lon="11.377774238586426">
+        <name>132191</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105000</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130114&#xA;      &#xA;      &#xA;        146550&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20856475830078" lon="11.390711784362793">
+        <name>130114</name>
+      </trkpt>
+      <trkpt lat="48.20722198486328" lon="11.393383979797363">
+        <name>146550</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105142</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146694&#xA;      &#xA;      &#xA;        146697&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1915397644043" lon="11.70136833190918">
+        <name>146694</name>
+      </trkpt>
+      <trkpt lat="48.19039535522461" lon="11.705796241760254">
+        <name>146697</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85898</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128221&#xA;      &#xA;      &#xA;        128222&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.194393157958984" lon="11.365962028503418">
+        <name>128221</name>
+      </trkpt>
+      <trkpt lat="48.193843841552734" lon="11.36777114868164">
+        <name>128222</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86747</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129013&#xA;      &#xA;      &#xA;        129018&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20819854736328" lon="11.461540222167969">
+        <name>129013</name>
+      </trkpt>
+      <trkpt lat="48.20880889892578" lon="11.4639253616333">
+        <name>129018</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90143</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132322&#xA;      &#xA;      &#xA;        132323&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24245071411133" lon="11.458816528320312">
+        <name>132322</name>
+      </trkpt>
+      <trkpt lat="48.242431640625" lon="11.462272644042969">
+        <name>132323</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105567</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147121&#xA;      &#xA;      &#xA;        147122&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12887954711914" lon="11.43274974822998">
+        <name>147121</name>
+      </trkpt>
+      <trkpt lat="48.12916564941406" lon="11.432292938232422">
+        <name>147122</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87738</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129994&#xA;      &#xA;      &#xA;        129989&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.163719177246094" lon="11.435429573059082">
+        <name>129994</name>
+      </trkpt>
+      <trkpt lat="48.163551330566406" lon="11.436266899108887">
+        <name>129989</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90002</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132191&#xA;      &#xA;      &#xA;        132192&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.210811614990234" lon="11.377774238586426">
+        <name>132191</name>
+      </trkpt>
+      <trkpt lat="48.211204528808594" lon="11.37743091583252">
+        <name>132192</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105001</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146550&#xA;      &#xA;      &#xA;        146551&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20722198486328" lon="11.393383979797363">
+        <name>146550</name>
+      </trkpt>
+      <trkpt lat="48.206764221191406" lon="11.395126342773438">
+        <name>146551</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85899</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128222&#xA;      &#xA;      &#xA;        128223&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.193843841552734" lon="11.36777114868164">
+        <name>128222</name>
+      </trkpt>
+      <trkpt lat="48.193443298339844" lon="11.369275093078613">
+        <name>128223</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86748</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129018&#xA;      &#xA;      &#xA;        129019&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20880889892578" lon="11.4639253616333">
+        <name>129018</name>
+      </trkpt>
+      <trkpt lat="48.20945739746094" lon="11.466724395751953">
+        <name>129019</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87597</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129863&#xA;      &#xA;      &#xA;        129869&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15543746948242" lon="11.423273086547852">
+        <name>129863</name>
+      </trkpt>
+      <trkpt lat="48.1557502746582" lon="11.423044204711914">
+        <name>129869</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90144</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132323&#xA;      &#xA;      &#xA;        132324&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.242431640625" lon="11.462272644042969">
+        <name>132323</name>
+      </trkpt>
+      <trkpt lat="48.24235534667969" lon="11.466129302978516">
+        <name>132324</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105568</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147122&#xA;      &#xA;      &#xA;        147123&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12916564941406" lon="11.432292938232422">
+        <name>147122</name>
+      </trkpt>
+      <trkpt lat="48.12941360473633" lon="11.431607246398926">
+        <name>147123</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87739</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129994&#xA;      &#xA;      &#xA;        129996&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.163719177246094" lon="11.435429573059082">
+        <name>129994</name>
+      </trkpt>
+      <trkpt lat="48.164146423339844" lon="11.435867309570312">
+        <name>129996</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90003</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132192&#xA;      &#xA;      &#xA;        132193&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.211204528808594" lon="11.37743091583252">
+        <name>132192</name>
+      </trkpt>
+      <trkpt lat="48.21168518066406" lon="11.376859664916992">
+        <name>132193</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85900</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128223&#xA;      &#xA;      &#xA;        128224&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.193443298339844" lon="11.369275093078613">
+        <name>128223</name>
+      </trkpt>
+      <trkpt lat="48.19287109375" lon="11.371485710144043">
+        <name>128224</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86749</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129019&#xA;      &#xA;      &#xA;        129020&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20945739746094" lon="11.466724395751953">
+        <name>129019</name>
+      </trkpt>
+      <trkpt lat="48.209625244140625" lon="11.468353271484375">
+        <name>129020</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87598</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129869&#xA;      &#xA;      &#xA;        129864&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1557502746582" lon="11.423044204711914">
+        <name>129869</name>
+      </trkpt>
+      <trkpt lat="48.155853271484375" lon="11.42308235168457">
+        <name>129864</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90145</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132324&#xA;      &#xA;      &#xA;        132325&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24235534667969" lon="11.466129302978516">
+        <name>132324</name>
+      </trkpt>
+      <trkpt lat="48.242488861083984" lon="11.468157768249512">
+        <name>132325</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105569</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147123&#xA;      &#xA;      &#xA;        147124&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12941360473633" lon="11.431607246398926">
+        <name>147123</name>
+      </trkpt>
+      <trkpt lat="48.12947463989258" lon="11.43083667755127">
+        <name>147124</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87740</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129996&#xA;      &#xA;      &#xA;        129997&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.164146423339844" lon="11.435867309570312">
+        <name>129996</name>
+      </trkpt>
+      <trkpt lat="48.16454315185547" lon="11.436134338378906">
+        <name>129997</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90004</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132193&#xA;      &#xA;      &#xA;        132194&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21168518066406" lon="11.376859664916992">
+        <name>132193</name>
+      </trkpt>
+      <trkpt lat="48.2124137878418" lon="11.37592601776123">
+        <name>132194</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87882</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130107&#xA;      &#xA;      &#xA;        130108&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.231201171875" lon="11.35247802734375">
+        <name>130107</name>
+      </trkpt>
+      <trkpt lat="48.229549407958984" lon="11.355305671691895">
+        <name>130108</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85901</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128224&#xA;      &#xA;      &#xA;        128225&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19287109375" lon="11.371485710144043">
+        <name>128224</name>
+      </trkpt>
+      <trkpt lat="48.19234085083008" lon="11.373237609863281">
+        <name>128225</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86750</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129020&#xA;      &#xA;      &#xA;        129021&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.209625244140625" lon="11.468353271484375">
+        <name>129020</name>
+      </trkpt>
+      <trkpt lat="48.20966339111328" lon="11.47098159790039">
+        <name>129021</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87599</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129869&#xA;      &#xA;      &#xA;        129864&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1557502746582" lon="11.423044204711914">
+        <name>129869</name>
+      </trkpt>
+      <trkpt lat="48.155853271484375" lon="11.42308235168457">
+        <name>129864</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90146</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132325&#xA;      &#xA;      &#xA;        132326&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.242488861083984" lon="11.468157768249512">
+        <name>132325</name>
+      </trkpt>
+      <trkpt lat="48.242977142333984" lon="11.470528602600098">
+        <name>132326</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105570</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147124&#xA;      &#xA;      &#xA;        147125&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12947463989258" lon="11.43083667755127">
+        <name>147124</name>
+      </trkpt>
+      <trkpt lat="48.12955093383789" lon="11.430464744567871">
+        <name>147125</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87741</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129997&#xA;      &#xA;      &#xA;        129998&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16454315185547" lon="11.436134338378906">
+        <name>129997</name>
+      </trkpt>
+      <trkpt lat="48.164642333984375" lon="11.436400413513184">
+        <name>129998</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90005</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132194&#xA;      &#xA;      &#xA;        132195&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2124137878418" lon="11.37592601776123">
+        <name>132194</name>
+      </trkpt>
+      <trkpt lat="48.213287353515625" lon="11.374726295471191">
+        <name>132195</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105004</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146551&#xA;      &#xA;      &#xA;        146552&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.206764221191406" lon="11.395126342773438">
+        <name>146551</name>
+      </trkpt>
+      <trkpt lat="48.206459045410156" lon="11.397440910339355">
+        <name>146552</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87883</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130108&#xA;      &#xA;      &#xA;        130109&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.229549407958984" lon="11.355305671691895">
+        <name>130108</name>
+      </trkpt>
+      <trkpt lat="48.22617721557617" lon="11.360904693603516">
+        <name>130109</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85902</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128225&#xA;      &#xA;      &#xA;        128226&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19234085083008" lon="11.373237609863281">
+        <name>128225</name>
+      </trkpt>
+      <trkpt lat="48.19114303588867" lon="11.375065803527832">
+        <name>128226</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86751</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129021&#xA;      &#xA;      &#xA;        129022&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20966339111328" lon="11.47098159790039">
+        <name>129021</name>
+      </trkpt>
+      <trkpt lat="48.209686279296875" lon="11.475935935974121">
+        <name>129022</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87600</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128288&#xA;      &#xA;      &#xA;        129868&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155555725097656" lon="11.42264175415039">
+        <name>128288</name>
+      </trkpt>
+      <trkpt lat="48.155643463134766" lon="11.422701835632324">
+        <name>129868</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90147</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132326&#xA;      &#xA;      &#xA;        132327&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.242977142333984" lon="11.470528602600098">
+        <name>132326</name>
+      </trkpt>
+      <trkpt lat="48.24374008178711" lon="11.472557067871094">
+        <name>132327</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105571</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147125&#xA;      &#xA;      &#xA;        147126&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12955093383789" lon="11.430464744567871">
+        <name>147125</name>
+      </trkpt>
+      <trkpt lat="48.13019561767578" lon="11.428665161132812">
+        <name>147126</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87742</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129998&#xA;      &#xA;      &#xA;        129999&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.164642333984375" lon="11.436400413513184">
+        <name>129998</name>
+      </trkpt>
+      <trkpt lat="48.1647834777832" lon="11.438780784606934">
+        <name>129999</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90006</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132195&#xA;      &#xA;      &#xA;        132196&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.213287353515625" lon="11.374726295471191">
+        <name>132195</name>
+      </trkpt>
+      <trkpt lat="48.21403884887695" lon="11.373507499694824">
+        <name>132196</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87884</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130109&#xA;      &#xA;      &#xA;        130110&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22617721557617" lon="11.360904693603516">
+        <name>130109</name>
+      </trkpt>
+      <trkpt lat="48.22203063964844" lon="11.367988586425781">
+        <name>130110</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85903</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128226&#xA;      &#xA;      &#xA;        128227&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19114303588867" lon="11.375065803527832">
+        <name>128226</name>
+      </trkpt>
+      <trkpt lat="48.18982696533203" lon="11.377103805541992">
+        <name>128227</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86752</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129022&#xA;      &#xA;      &#xA;        129024&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.209686279296875" lon="11.475935935974121">
+        <name>129022</name>
+      </trkpt>
+      <trkpt lat="48.209571838378906" lon="11.478721618652344">
+        <name>129024</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87601</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128289&#xA;      &#xA;      &#xA;        129868&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15562057495117" lon="11.422557830810547">
+        <name>128289</name>
+      </trkpt>
+      <trkpt lat="48.155643463134766" lon="11.422701835632324">
+        <name>129868</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90148</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132327&#xA;      &#xA;      &#xA;        132328&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24374008178711" lon="11.472557067871094">
+        <name>132327</name>
+      </trkpt>
+      <trkpt lat="48.244598388671875" lon="11.474013328552246">
+        <name>132328</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105572</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147126&#xA;      &#xA;      &#xA;        147127&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13019561767578" lon="11.428665161132812">
+        <name>147126</name>
+      </trkpt>
+      <trkpt lat="48.13046646118164" lon="11.42849349975586">
+        <name>147127</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87743</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129999&#xA;      &#xA;      &#xA;        130000&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1647834777832" lon="11.438780784606934">
+        <name>129999</name>
+      </trkpt>
+      <trkpt lat="48.1644287109375" lon="11.439676284790039">
+        <name>130000</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90007</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132196&#xA;      &#xA;      &#xA;        132197&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21403884887695" lon="11.373507499694824">
+        <name>132196</name>
+      </trkpt>
+      <trkpt lat="48.21506881713867" lon="11.371984481811523">
+        <name>132197</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105006</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146552&#xA;      &#xA;      &#xA;        146553&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.206459045410156" lon="11.397440910339355">
+        <name>146552</name>
+      </trkpt>
+      <trkpt lat="48.20621109008789" lon="11.400668144226074">
+        <name>146553</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87885</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130110&#xA;      &#xA;      &#xA;        130111&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22203063964844" lon="11.367988586425781">
+        <name>130110</name>
+      </trkpt>
+      <trkpt lat="48.21829605102539" lon="11.374273300170898">
+        <name>130111</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85904</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128227&#xA;      &#xA;      &#xA;        128228&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18982696533203" lon="11.377103805541992">
+        <name>128227</name>
+      </trkpt>
+      <trkpt lat="48.18793487548828" lon="11.380284309387207">
+        <name>128228</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86753</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129024&#xA;      &#xA;      &#xA;        129025&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.209571838378906" lon="11.478721618652344">
+        <name>129024</name>
+      </trkpt>
+      <trkpt lat="48.20926284790039" lon="11.481378555297852">
+        <name>129025</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87602</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129868&#xA;      &#xA;      &#xA;        129869&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155643463134766" lon="11.422701835632324">
+        <name>129868</name>
+      </trkpt>
+      <trkpt lat="48.1557502746582" lon="11.423044204711914">
+        <name>129869</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90149</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132328&#xA;      &#xA;      &#xA;        132329&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.244598388671875" lon="11.474013328552246">
+        <name>132328</name>
+      </trkpt>
+      <trkpt lat="48.24520492553711" lon="11.474727630615234">
+        <name>132329</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105573</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147127&#xA;      &#xA;      &#xA;        147128&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13046646118164" lon="11.42849349975586">
+        <name>147127</name>
+      </trkpt>
+      <trkpt lat="48.131263732910156" lon="11.428522109985352">
+        <name>147128</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87744</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130000&#xA;      &#xA;      &#xA;        129988&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1644287109375" lon="11.439676284790039">
+        <name>130000</name>
+      </trkpt>
+      <trkpt lat="48.163551330566406" lon="11.439733505249023">
+        <name>129988</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90008</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132197&#xA;      &#xA;      &#xA;        132198&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21506881713867" lon="11.371984481811523">
+        <name>132197</name>
+      </trkpt>
+      <trkpt lat="48.2154426574707" lon="11.371563911437988">
+        <name>132198</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87886</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130111&#xA;      &#xA;      &#xA;        130112&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21829605102539" lon="11.374273300170898">
+        <name>130111</name>
+      </trkpt>
+      <trkpt lat="48.21529006958008" lon="11.379414558410645">
+        <name>130112</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85905</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128228&#xA;      &#xA;      &#xA;        128229&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18793487548828" lon="11.380284309387207">
+        <name>128228</name>
+      </trkpt>
+      <trkpt lat="48.186790466308594" lon="11.382305145263672">
+        <name>128229</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86754</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129025&#xA;      &#xA;      &#xA;        129026&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20926284790039" lon="11.481378555297852">
+        <name>129025</name>
+      </trkpt>
+      <trkpt lat="48.20903396606445" lon="11.483692169189453">
+        <name>129026</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87603</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129868&#xA;      &#xA;      &#xA;        129866&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155643463134766" lon="11.422701835632324">
+        <name>129868</name>
+      </trkpt>
+      <trkpt lat="48.15615463256836" lon="11.422321319580078">
+        <name>129866</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90150</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132328&#xA;      &#xA;      &#xA;        132330&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.244598388671875" lon="11.474013328552246">
+        <name>132328</name>
+      </trkpt>
+      <trkpt lat="48.245033264160156" lon="11.47492790222168">
+        <name>132330</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105574</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147128&#xA;      &#xA;      &#xA;        147129&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.131263732910156" lon="11.428522109985352">
+        <name>147128</name>
+      </trkpt>
+      <trkpt lat="48.13139724731445" lon="11.4284086227417">
+        <name>147129</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87745</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129994&#xA;      &#xA;      &#xA;        129995&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.163719177246094" lon="11.435429573059082">
+        <name>129994</name>
+      </trkpt>
+      <trkpt lat="48.16404724121094" lon="11.434248924255371">
+        <name>129995</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90009</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132198&#xA;      &#xA;      &#xA;        132199&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2154426574707" lon="11.371563911437988">
+        <name>132198</name>
+      </trkpt>
+      <trkpt lat="48.21577072143555" lon="11.371126174926758">
+        <name>132199</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87887</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130112&#xA;      &#xA;      &#xA;        130113&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21529006958008" lon="11.379414558410645">
+        <name>130112</name>
+      </trkpt>
+      <trkpt lat="48.211578369140625" lon="11.385669708251953">
+        <name>130113</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86755</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129017&#xA;      &#xA;      &#xA;        129023&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20991134643555" lon="11.47098159790039">
+        <name>129017</name>
+      </trkpt>
+      <trkpt lat="48.209930419921875" lon="11.475778579711914">
+        <name>129023</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90151</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132329&#xA;      &#xA;      &#xA;        132330&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24520492553711" lon="11.474727630615234">
+        <name>132329</name>
+      </trkpt>
+      <trkpt lat="48.245033264160156" lon="11.47492790222168">
+        <name>132330</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105575</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147129&#xA;      &#xA;      &#xA;        147130&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13139724731445" lon="11.4284086227417">
+        <name>147129</name>
+      </trkpt>
+      <trkpt lat="48.1318359375" lon="11.427037239074707">
+        <name>147130</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87746</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129995&#xA;      &#xA;      &#xA;        129832&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16404724121094" lon="11.434248924255371">
+        <name>129995</name>
+      </trkpt>
+      <trkpt lat="48.16414260864258" lon="11.433693885803223">
+        <name>129832</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90010</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132199&#xA;      &#xA;      &#xA;        132200&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21577072143555" lon="11.371126174926758">
+        <name>132199</name>
+      </trkpt>
+      <trkpt lat="48.21609115600586" lon="11.370402336120605">
+        <name>132200</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105009</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146553&#xA;      &#xA;      &#xA;        146557&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20621109008789" lon="11.400668144226074">
+        <name>146553</name>
+      </trkpt>
+      <trkpt lat="48.20600509643555" lon="11.404182434082031">
+        <name>146557</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87888</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130113&#xA;      &#xA;      &#xA;        130114&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.211578369140625" lon="11.385669708251953">
+        <name>130113</name>
+      </trkpt>
+      <trkpt lat="48.20856475830078" lon="11.390711784362793">
+        <name>130114</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86756</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129023&#xA;      &#xA;      &#xA;        129027&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.209930419921875" lon="11.475778579711914">
+        <name>129023</name>
+      </trkpt>
+      <trkpt lat="48.20979690551758" lon="11.478750228881836">
+        <name>129027</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90152</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132330&#xA;      &#xA;      &#xA;        132331&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.245033264160156" lon="11.47492790222168">
+        <name>132330</name>
+      </trkpt>
+      <trkpt lat="48.244842529296875" lon="11.47567081451416">
+        <name>132331</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105576</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147130&#xA;      &#xA;      &#xA;        147131&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1318359375" lon="11.427037239074707">
+        <name>147130</name>
+      </trkpt>
+      <trkpt lat="48.13248825073242" lon="11.425494194030762">
+        <name>147131</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87747</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129856&#xA;      &#xA;      &#xA;        130001&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15774154663086" lon="11.425199508666992">
+        <name>129856</name>
+      </trkpt>
+      <trkpt lat="48.15787124633789" lon="11.425211906433105">
+        <name>130001</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90011</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132200&#xA;      &#xA;      &#xA;        132201&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21609115600586" lon="11.370402336120605">
+        <name>132200</name>
+      </trkpt>
+      <trkpt lat="48.216670989990234" lon="11.36941146850586">
+        <name>132201</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87889</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130114&#xA;      &#xA;      &#xA;        130115&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20856475830078" lon="11.390711784362793">
+        <name>130114</name>
+      </trkpt>
+      <trkpt lat="48.20582580566406" lon="11.39538288116455">
+        <name>130115</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85908</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128231&#xA;      &#xA;      &#xA;        128232&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1844367980957" lon="11.386801719665527">
+        <name>128231</name>
+      </trkpt>
+      <trkpt lat="48.18360900878906" lon="11.388019561767578">
+        <name>128232</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86757</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129027&#xA;      &#xA;      &#xA;        129028&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20979690551758" lon="11.478750228881836">
+        <name>129027</name>
+      </trkpt>
+      <trkpt lat="48.20951461791992" lon="11.481093406677246">
+        <name>129028</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90153</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132331&#xA;      &#xA;      &#xA;        132333&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.244842529296875" lon="11.47567081451416">
+        <name>132331</name>
+      </trkpt>
+      <trkpt lat="48.2448844909668" lon="11.476212501525879">
+        <name>132333</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105577</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147131&#xA;      &#xA;      &#xA;        147132&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13248825073242" lon="11.425494194030762">
+        <name>147131</name>
+      </trkpt>
+      <trkpt lat="48.13288497924805" lon="11.424598693847656">
+        <name>147132</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87748</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130001&#xA;      &#xA;      &#xA;        129854&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15787124633789" lon="11.425211906433105">
+        <name>130001</name>
+      </trkpt>
+      <trkpt lat="48.157962799072266" lon="11.425047874450684">
+        <name>129854</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90012</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132201&#xA;      &#xA;      &#xA;        132202&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.216670989990234" lon="11.36941146850586">
+        <name>132201</name>
+      </trkpt>
+      <trkpt lat="48.217498779296875" lon="11.368268966674805">
+        <name>132202</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105153</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146697&#xA;      &#xA;      &#xA;        146704&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19039535522461" lon="11.705796241760254">
+        <name>146697</name>
+      </trkpt>
+      <trkpt lat="48.18891525268555" lon="11.710309982299805">
+        <name>146704</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87890</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130115&#xA;      &#xA;      &#xA;        130116&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20582580566406" lon="11.39538288116455">
+        <name>130115</name>
+      </trkpt>
+      <trkpt lat="48.20228576660156" lon="11.400910377502441">
+        <name>130116</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85909</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128232&#xA;      &#xA;      &#xA;        128233&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18360900878906" lon="11.388019561767578">
+        <name>128232</name>
+      </trkpt>
+      <trkpt lat="48.18272018432617" lon="11.388762474060059">
+        <name>128233</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86758</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129028&#xA;      &#xA;      &#xA;        129029&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20951461791992" lon="11.481093406677246">
+        <name>129028</name>
+      </trkpt>
+      <trkpt lat="48.209285736083984" lon="11.48303508758545">
+        <name>129029</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90154</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132333&#xA;      &#xA;      &#xA;        132332&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2448844909668" lon="11.476212501525879">
+        <name>132333</name>
+      </trkpt>
+      <trkpt lat="48.2448844909668" lon="11.4764986038208">
+        <name>132332</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105578</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147132&#xA;      &#xA;      &#xA;        147133&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13288497924805" lon="11.424598693847656">
+        <name>147132</name>
+      </trkpt>
+      <trkpt lat="48.133026123046875" lon="11.424561500549316">
+        <name>147133</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87749</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129857&#xA;      &#xA;      &#xA;        130002&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15715026855469" lon="11.425485610961914">
+        <name>129857</name>
+      </trkpt>
+      <trkpt lat="48.157466888427734" lon="11.427210807800293">
+        <name>130002</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90013</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132202&#xA;      &#xA;      &#xA;        132203&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.217498779296875" lon="11.368268966674805">
+        <name>132202</name>
+      </trkpt>
+      <trkpt lat="48.21792984008789" lon="11.367925643920898">
+        <name>132203</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105012</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146557&#xA;      &#xA;      &#xA;        146562&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20600509643555" lon="11.404182434082031">
+        <name>146557</name>
+      </trkpt>
+      <trkpt lat="48.20566177368164" lon="11.410266876220703">
+        <name>146562</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87891</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130116&#xA;      &#xA;      &#xA;        130117&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20228576660156" lon="11.400910377502441">
+        <name>130116</name>
+      </trkpt>
+      <trkpt lat="48.19928741455078" lon="11.405449867248535">
+        <name>130117</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85910</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128233&#xA;      &#xA;      &#xA;        128234&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18272018432617" lon="11.388762474060059">
+        <name>128233</name>
+      </trkpt>
+      <trkpt lat="48.18208694458008" lon="11.389562606811523">
+        <name>128234</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86759</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129026&#xA;      &#xA;      &#xA;        129030&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20903396606445" lon="11.483692169189453">
+        <name>129026</name>
+      </trkpt>
+      <trkpt lat="48.20897674560547" lon="11.486090660095215">
+        <name>129030</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90155</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132332&#xA;      &#xA;      &#xA;        132334&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2448844909668" lon="11.4764986038208">
+        <name>132332</name>
+      </trkpt>
+      <trkpt lat="48.24520492553711" lon="11.4764986038208">
+        <name>132334</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105579</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147133&#xA;      &#xA;      &#xA;        147134&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.133026123046875" lon="11.424561500549316">
+        <name>147133</name>
+      </trkpt>
+      <trkpt lat="48.133216857910156" lon="11.424808502197266">
+        <name>147134</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87750</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130002&#xA;      &#xA;      &#xA;        130003&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.157466888427734" lon="11.427210807800293">
+        <name>130002</name>
+      </trkpt>
+      <trkpt lat="48.157657623291016" lon="11.42873477935791">
+        <name>130003</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90014</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132203&#xA;      &#xA;      &#xA;        132204&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21792984008789" lon="11.367925643920898">
+        <name>132203</name>
+      </trkpt>
+      <trkpt lat="48.21843338012695" lon="11.367830276489258">
+        <name>132204</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105013</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146562&#xA;      &#xA;      &#xA;        146565&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20566177368164" lon="11.410266876220703">
+        <name>146562</name>
+      </trkpt>
+      <trkpt lat="48.205257415771484" lon="11.417179107666016">
+        <name>146565</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105155</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146704&#xA;      &#xA;      &#xA;        146705&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18891525268555" lon="11.710309982299805">
+        <name>146704</name>
+      </trkpt>
+      <trkpt lat="48.18745040893555" lon="11.714194297790527">
+        <name>146705</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87892</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130117&#xA;      &#xA;      &#xA;        130118&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19928741455078" lon="11.405449867248535">
+        <name>130117</name>
+      </trkpt>
+      <trkpt lat="48.19568634033203" lon="11.41089153289795">
+        <name>130118</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85911</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128234&#xA;      &#xA;      &#xA;        128235&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18208694458008" lon="11.389562606811523">
+        <name>128234</name>
+      </trkpt>
+      <trkpt lat="48.180641174316406" lon="11.392782211303711">
+        <name>128235</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86760</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129030&#xA;      &#xA;      &#xA;        129031&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20897674560547" lon="11.486090660095215">
+        <name>129030</name>
+      </trkpt>
+      <trkpt lat="48.209205627441406" lon="11.489204406738281">
+        <name>129031</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90156</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132334&#xA;      &#xA;      &#xA;        132333&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24520492553711" lon="11.4764986038208">
+        <name>132334</name>
+      </trkpt>
+      <trkpt lat="48.2448844909668" lon="11.476212501525879">
+        <name>132333</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105580</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147134&#xA;      &#xA;      &#xA;        147135&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.133216857910156" lon="11.424808502197266">
+        <name>147134</name>
+      </trkpt>
+      <trkpt lat="48.133419036865234" lon="11.424808502197266">
+        <name>147135</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87751</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130003&#xA;      &#xA;      &#xA;        130005&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.157657623291016" lon="11.42873477935791">
+        <name>130003</name>
+      </trkpt>
+      <trkpt lat="48.157081604003906" lon="11.428582191467285">
+        <name>130005</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90015</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132204&#xA;      &#xA;      &#xA;        132205&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21843338012695" lon="11.367830276489258">
+        <name>132204</name>
+      </trkpt>
+      <trkpt lat="48.21870422363281" lon="11.367658615112305">
+        <name>132205</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87893</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130118&#xA;      &#xA;      &#xA;        130119&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19568634033203" lon="11.41089153289795">
+        <name>130118</name>
+      </trkpt>
+      <trkpt lat="48.19208908081055" lon="11.416290283203125">
+        <name>130119</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85912</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128235&#xA;      &#xA;      &#xA;        128236&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.180641174316406" lon="11.392782211303711">
+        <name>128235</name>
+      </trkpt>
+      <trkpt lat="48.179840087890625" lon="11.395505905151367">
+        <name>128236</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86761</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129031&#xA;      &#xA;      &#xA;        129032&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.209205627441406" lon="11.489204406738281">
+        <name>129031</name>
+      </trkpt>
+      <trkpt lat="48.209739685058594" lon="11.492204666137695">
+        <name>129032</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90157</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132334&#xA;      &#xA;      &#xA;        132335&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24520492553711" lon="11.4764986038208">
+        <name>132334</name>
+      </trkpt>
+      <trkpt lat="48.24600601196289" lon="11.476527214050293">
+        <name>132335</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105581</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147135&#xA;      &#xA;      &#xA;        147136&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.133419036865234" lon="11.424808502197266">
+        <name>147135</name>
+      </trkpt>
+      <trkpt lat="48.13386535644531" lon="11.424636840820312">
+        <name>147136</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87752</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130003&#xA;      &#xA;      &#xA;        130004&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.157657623291016" lon="11.42873477935791">
+        <name>130003</name>
+      </trkpt>
+      <trkpt lat="48.15778350830078" lon="11.430315971374512">
+        <name>130004</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90016</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132205&#xA;      &#xA;      &#xA;        132206&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21870422363281" lon="11.367658615112305">
+        <name>132205</name>
+      </trkpt>
+      <trkpt lat="48.21900939941406" lon="11.367182731628418">
+        <name>132206</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105157</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146705&#xA;      &#xA;      &#xA;        146706&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18745040893555" lon="11.714194297790527">
+        <name>146705</name>
+      </trkpt>
+      <trkpt lat="48.18577575683594" lon="11.717822074890137">
+        <name>146706</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87894</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130119&#xA;      &#xA;      &#xA;        130120&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19208908081055" lon="11.416290283203125">
+        <name>130119</name>
+      </trkpt>
+      <trkpt lat="48.189022064208984" lon="11.420875549316406">
+        <name>130120</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85913</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128236&#xA;      &#xA;      &#xA;        128237&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.179840087890625" lon="11.395505905151367">
+        <name>128236</name>
+      </trkpt>
+      <trkpt lat="48.1796875" lon="11.398838996887207">
+        <name>128237</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86762</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129032&#xA;      &#xA;      &#xA;        129033&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.209739685058594" lon="11.492204666137695">
+        <name>129032</name>
+      </trkpt>
+      <trkpt lat="48.21046829223633" lon="11.49468994140625">
+        <name>129033</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90158</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132335&#xA;      &#xA;      &#xA;        132336&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24600601196289" lon="11.476527214050293">
+        <name>132335</name>
+      </trkpt>
+      <trkpt lat="48.24713134765625" lon="11.476212501525879">
+        <name>132336</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105582</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147136&#xA;      &#xA;      &#xA;        147137&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13386535644531" lon="11.424636840820312">
+        <name>147136</name>
+      </trkpt>
+      <trkpt lat="48.1344108581543" lon="11.424732208251953">
+        <name>147137</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87753</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130004&#xA;      &#xA;      &#xA;        130006&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15778350830078" lon="11.430315971374512">
+        <name>130004</name>
+      </trkpt>
+      <trkpt lat="48.1559944152832" lon="11.430524826049805">
+        <name>130006</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90017</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132206&#xA;      &#xA;      &#xA;        132207&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21900939941406" lon="11.367182731628418">
+        <name>132206</name>
+      </trkpt>
+      <trkpt lat="48.22047805786133" lon="11.364363670349121">
+        <name>132207</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105158</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146706&#xA;      &#xA;      &#xA;        146707&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18577575683594" lon="11.717822074890137">
+        <name>146706</name>
+      </trkpt>
+      <trkpt lat="48.18379211425781" lon="11.72150707244873">
+        <name>146707</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87895</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130120&#xA;      &#xA;      &#xA;        130121&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.189022064208984" lon="11.420875549316406">
+        <name>130120</name>
+      </trkpt>
+      <trkpt lat="48.18502426147461" lon="11.426959037780762">
+        <name>130121</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85914</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128237&#xA;      &#xA;      &#xA;        128238&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1796875" lon="11.398838996887207">
+        <name>128237</name>
+      </trkpt>
+      <trkpt lat="48.17930221557617" lon="11.398858070373535">
+        <name>128238</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86763</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129033&#xA;      &#xA;      &#xA;        129034&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21046829223633" lon="11.49468994140625">
+        <name>129033</name>
+      </trkpt>
+      <trkpt lat="48.21126174926758" lon="11.49671745300293">
+        <name>129034</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90159</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132336&#xA;      &#xA;      &#xA;        132337&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24713134765625" lon="11.476212501525879">
+        <name>132336</name>
+      </trkpt>
+      <trkpt lat="48.24871063232422" lon="11.475098609924316">
+        <name>132337</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105583</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147137&#xA;      &#xA;      &#xA;        147138&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1344108581543" lon="11.424732208251953">
+        <name>147137</name>
+      </trkpt>
+      <trkpt lat="48.13496780395508" lon="11.425169944763184">
+        <name>147138</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87754</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130006&#xA;      &#xA;      &#xA;        130007&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1559944152832" lon="11.430524826049805">
+        <name>130006</name>
+      </trkpt>
+      <trkpt lat="48.155853271484375" lon="11.429533958435059">
+        <name>130007</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90018</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132207&#xA;      &#xA;      &#xA;        132208&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22047805786133" lon="11.364363670349121">
+        <name>132207</name>
+      </trkpt>
+      <trkpt lat="48.22175216674805" lon="11.361953735351562">
+        <name>132208</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85915</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128238&#xA;      &#xA;      &#xA;        128239&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17930221557617" lon="11.398858070373535">
+        <name>128238</name>
+      </trkpt>
+      <trkpt lat="48.179073333740234" lon="11.398971557617188">
+        <name>128239</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86764</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129029&#xA;      &#xA;      &#xA;        129035&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.209285736083984" lon="11.48303508758545">
+        <name>129029</name>
+      </trkpt>
+      <trkpt lat="48.209190368652344" lon="11.486063003540039">
+        <name>129035</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90160</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132337&#xA;      &#xA;      &#xA;        132338&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24871063232422" lon="11.475098609924316">
+        <name>132337</name>
+      </trkpt>
+      <trkpt lat="48.25078582763672" lon="11.473670959472656">
+        <name>132338</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105584</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147138&#xA;      &#xA;      &#xA;        147139&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13496780395508" lon="11.425169944763184">
+        <name>147138</name>
+      </trkpt>
+      <trkpt lat="48.13529968261719" lon="11.425589561462402">
+        <name>147139</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87755</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130006&#xA;      &#xA;      &#xA;        130008&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1559944152832" lon="11.430524826049805">
+        <name>130006</name>
+      </trkpt>
+      <trkpt lat="48.156185150146484" lon="11.432143211364746">
+        <name>130008</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90019</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132208&#xA;      &#xA;      &#xA;        132209&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22175216674805" lon="11.361953735351562">
+        <name>132208</name>
+      </trkpt>
+      <trkpt lat="48.22293472290039" lon="11.359668731689453">
+        <name>132209</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105160</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146707&#xA;      &#xA;      &#xA;        146710&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18379211425781" lon="11.72150707244873">
+        <name>146707</name>
+      </trkpt>
+      <trkpt lat="48.18158721923828" lon="11.725021362304688">
+        <name>146710</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87897</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129950&#xA;      &#xA;      &#xA;        130122&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18100357055664" lon="11.433415412902832">
+        <name>129950</name>
+      </trkpt>
+      <trkpt lat="48.181976318359375" lon="11.431831359863281">
+        <name>130122</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85916</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128239&#xA;      &#xA;      &#xA;        128240&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.179073333740234" lon="11.398971557617188">
+        <name>128239</name>
+      </trkpt>
+      <trkpt lat="48.17836380004883" lon="11.400629043579102">
+        <name>128240</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86765</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129035&#xA;      &#xA;      &#xA;        129036&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.209190368652344" lon="11.486063003540039">
+        <name>129035</name>
+      </trkpt>
+      <trkpt lat="48.20945739746094" lon="11.489090919494629">
+        <name>129036</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90161</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132338&#xA;      &#xA;      &#xA;        132339&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25078582763672" lon="11.473670959472656">
+        <name>132338</name>
+      </trkpt>
+      <trkpt lat="48.25321578979492" lon="11.472185134887695">
+        <name>132339</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105585</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147139&#xA;      &#xA;      &#xA;        147140&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13529968261719" lon="11.425589561462402">
+        <name>147139</name>
+      </trkpt>
+      <trkpt lat="48.1359748840332" lon="11.424484252929688">
+        <name>147140</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87756</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130008&#xA;      &#xA;      &#xA;        130017&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.156185150146484" lon="11.432143211364746">
+        <name>130008</name>
+      </trkpt>
+      <trkpt lat="48.15703201293945" lon="11.431781768798828">
+        <name>130017</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90020</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132209&#xA;      &#xA;      &#xA;        132210&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22293472290039" lon="11.359668731689453">
+        <name>132209</name>
+      </trkpt>
+      <trkpt lat="48.223392486572266" lon="11.359068870544434">
+        <name>132210</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87898</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130122&#xA;      &#xA;      &#xA;        129948&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.181976318359375" lon="11.431831359863281">
+        <name>130122</name>
+      </trkpt>
+      <trkpt lat="48.18239212036133" lon="11.431615829467773">
+        <name>129948</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85917</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128240&#xA;      &#xA;      &#xA;        128241&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17836380004883" lon="11.400629043579102">
+        <name>128240</name>
+      </trkpt>
+      <trkpt lat="48.178401947021484" lon="11.401885986328125">
+        <name>128241</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86766</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129036&#xA;      &#xA;      &#xA;        129037&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20945739746094" lon="11.489090919494629">
+        <name>129036</name>
+      </trkpt>
+      <trkpt lat="48.2099494934082" lon="11.491890907287598">
+        <name>129037</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90162</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132339&#xA;      &#xA;      &#xA;        132340&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25321578979492" lon="11.472185134887695">
+        <name>132339</name>
+      </trkpt>
+      <trkpt lat="48.255062103271484" lon="11.470985412597656">
+        <name>132340</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105586</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147140&#xA;      &#xA;      &#xA;        147141&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1359748840332" lon="11.424484252929688">
+        <name>147140</name>
+      </trkpt>
+      <trkpt lat="48.13662338256836" lon="11.425398826599121">
+        <name>147141</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87757</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130008&#xA;      &#xA;      &#xA;        130009&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.156185150146484" lon="11.432143211364746">
+        <name>130008</name>
+      </trkpt>
+      <trkpt lat="48.155662536621094" lon="11.432219505310059">
+        <name>130009</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90021</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132210&#xA;      &#xA;      &#xA;        132211&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.223392486572266" lon="11.359068870544434">
+        <name>132210</name>
+      </trkpt>
+      <trkpt lat="48.22386932373047" lon="11.358469009399414">
+        <name>132211</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87899</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130122&#xA;      &#xA;      &#xA;        130123&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.181976318359375" lon="11.431831359863281">
+        <name>130122</name>
+      </trkpt>
+      <trkpt lat="48.18325424194336" lon="11.429717063903809">
+        <name>130123</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85918</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128241&#xA;      &#xA;      &#xA;        128242&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.178401947021484" lon="11.401885986328125">
+        <name>128241</name>
+      </trkpt>
+      <trkpt lat="48.17850112915039" lon="11.402514457702637">
+        <name>128242</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86767</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129037&#xA;      &#xA;      &#xA;        129038&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2099494934082" lon="11.491890907287598">
+        <name>129037</name>
+      </trkpt>
+      <trkpt lat="48.210693359375" lon="11.494518280029297">
+        <name>129038</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90163</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132340&#xA;      &#xA;      &#xA;        132341&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.255062103271484" lon="11.470985412597656">
+        <name>132340</name>
+      </trkpt>
+      <trkpt lat="48.2557258605957" lon="11.470643043518066">
+        <name>132341</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105587</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147141&#xA;      &#xA;      &#xA;        147142&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13662338256836" lon="11.425398826599121">
+        <name>147141</name>
+      </trkpt>
+      <trkpt lat="48.137001037597656" lon="11.426217079162598">
+        <name>147142</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87758</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130009&#xA;      &#xA;      &#xA;        130010&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155662536621094" lon="11.432219505310059">
+        <name>130009</name>
+      </trkpt>
+      <trkpt lat="48.155521392822266" lon="11.43220043182373">
+        <name>130010</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90022</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132211&#xA;      &#xA;      &#xA;        132212&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22386932373047" lon="11.358469009399414">
+        <name>132211</name>
+      </trkpt>
+      <trkpt lat="48.22364044189453" lon="11.357954978942871">
+        <name>132212</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87900</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130123&#xA;      &#xA;      &#xA;        130121&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18325424194336" lon="11.429717063903809">
+        <name>130123</name>
+      </trkpt>
+      <trkpt lat="48.18502426147461" lon="11.426959037780762">
+        <name>130121</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85919</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128238&#xA;      &#xA;      &#xA;        128245&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17930221557617" lon="11.398858070373535">
+        <name>128238</name>
+      </trkpt>
+      <trkpt lat="48.179378509521484" lon="11.40104866027832">
+        <name>128245</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86768</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129038&#xA;      &#xA;      &#xA;        129039&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.210693359375" lon="11.494518280029297">
+        <name>129038</name>
+      </trkpt>
+      <trkpt lat="48.2114372253418" lon="11.496403694152832">
+        <name>129039</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90164</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132341&#xA;      &#xA;      &#xA;        132342&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2557258605957" lon="11.470643043518066">
+        <name>132341</name>
+      </trkpt>
+      <trkpt lat="48.25606918334961" lon="11.47104263305664">
+        <name>132342</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105588</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147142&#xA;      &#xA;      &#xA;        147143&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.137001037597656" lon="11.426217079162598">
+        <name>147142</name>
+      </trkpt>
+      <trkpt lat="48.13723373413086" lon="11.426979064941406">
+        <name>147143</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87759</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130010&#xA;      &#xA;      &#xA;        130011&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155521392822266" lon="11.43220043182373">
+        <name>130010</name>
+      </trkpt>
+      <trkpt lat="48.15536880493164" lon="11.431000709533691">
+        <name>130011</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90023</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132212&#xA;      &#xA;      &#xA;        132213&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22364044189453" lon="11.357954978942871">
+        <name>132212</name>
+      </trkpt>
+      <trkpt lat="48.222999572753906" lon="11.356821060180664">
+        <name>132213</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105022</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146565&#xA;      &#xA;      &#xA;        146573&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.205257415771484" lon="11.417179107666016">
+        <name>146565</name>
+      </trkpt>
+      <trkpt lat="48.204864501953125" lon="11.42429256439209">
+        <name>146573</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85920</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128245&#xA;      &#xA;      &#xA;        128244&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.179378509521484" lon="11.40104866027832">
+        <name>128245</name>
+      </trkpt>
+      <trkpt lat="48.17925262451172" lon="11.401580810546875">
+        <name>128244</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86769</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129034&#xA;      &#xA;      &#xA;        129040&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21126174926758" lon="11.49671745300293">
+        <name>129034</name>
+      </trkpt>
+      <trkpt lat="48.21223449707031" lon="11.498602867126465">
+        <name>129040</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90165</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132342&#xA;      &#xA;      &#xA;        132343&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25606918334961" lon="11.47104263305664">
+        <name>132342</name>
+      </trkpt>
+      <trkpt lat="48.25597381591797" lon="11.472413063049316">
+        <name>132343</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87901</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128959&#xA;      &#xA;      &#xA;        130126&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17397689819336" lon="11.426778793334961">
+        <name>128959</name>
+      </trkpt>
+      <trkpt lat="48.1741828918457" lon="11.426032066345215">
+        <name>130126</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105589</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147143&#xA;      &#xA;      &#xA;        147144&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13723373413086" lon="11.426979064941406">
+        <name>147143</name>
+      </trkpt>
+      <trkpt lat="48.13910675048828" lon="11.425970077514648">
+        <name>147144</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87760</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130011&#xA;      &#xA;      &#xA;        130012&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15536880493164" lon="11.431000709533691">
+        <name>130011</name>
+      </trkpt>
+      <trkpt lat="48.155242919921875" lon="11.430867195129395">
+        <name>130012</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90024</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132213&#xA;      &#xA;      &#xA;        132214&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.222999572753906" lon="11.356821060180664">
+        <name>132213</name>
+      </trkpt>
+      <trkpt lat="48.222469329833984" lon="11.35586929321289">
+        <name>132214</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85921</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128244&#xA;      &#xA;      &#xA;        128243&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17925262451172" lon="11.401580810546875">
+        <name>128244</name>
+      </trkpt>
+      <trkpt lat="48.178855895996094" lon="11.402247428894043">
+        <name>128243</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86770</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129040&#xA;      &#xA;      &#xA;        129041&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21223449707031" lon="11.498602867126465">
+        <name>129040</name>
+      </trkpt>
+      <trkpt lat="48.21390914916992" lon="11.501259803771973">
+        <name>129041</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90166</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132343&#xA;      &#xA;      &#xA;        132344&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25597381591797" lon="11.472413063049316">
+        <name>132343</name>
+      </trkpt>
+      <trkpt lat="48.255897521972656" lon="11.473898887634277">
+        <name>132344</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87902</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130126&#xA;      &#xA;      &#xA;        130125&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1741828918457" lon="11.426032066345215">
+        <name>130126</name>
+      </trkpt>
+      <trkpt lat="48.17450714111328" lon="11.425860404968262">
+        <name>130125</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105590</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147144&#xA;      &#xA;      &#xA;        147145&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13910675048828" lon="11.425970077514648">
+        <name>147144</name>
+      </trkpt>
+      <trkpt lat="48.140869140625" lon="11.424903869628906">
+        <name>147145</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87761</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130012&#xA;      &#xA;      &#xA;        130013&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155242919921875" lon="11.430867195129395">
+        <name>130012</name>
+      </trkpt>
+      <trkpt lat="48.154937744140625" lon="11.430867195129395">
+        <name>130013</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90025</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132214&#xA;      &#xA;      &#xA;        132215&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.222469329833984" lon="11.35586929321289">
+        <name>132214</name>
+      </trkpt>
+      <trkpt lat="48.22206115722656" lon="11.35512638092041">
+        <name>132215</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105024</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146573&#xA;      &#xA;      &#xA;        146574&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.204864501953125" lon="11.42429256439209">
+        <name>146573</name>
+      </trkpt>
+      <trkpt lat="48.20453643798828" lon="11.429862022399902">
+        <name>146574</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85922</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128243&#xA;      &#xA;      &#xA;        128242&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.178855895996094" lon="11.402247428894043">
+        <name>128243</name>
+      </trkpt>
+      <trkpt lat="48.17850112915039" lon="11.402514457702637">
+        <name>128242</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86771</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129041&#xA;      &#xA;      &#xA;        129042&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21390914916992" lon="11.501259803771973">
+        <name>129041</name>
+      </trkpt>
+      <trkpt lat="48.215721130371094" lon="11.504316329956055">
+        <name>129042</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90167</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132344&#xA;      &#xA;      &#xA;        132345&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.255897521972656" lon="11.473898887634277">
+        <name>132344</name>
+      </trkpt>
+      <trkpt lat="48.255916595458984" lon="11.474270820617676">
+        <name>132345</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87903</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130125&#xA;      &#xA;      &#xA;        130124&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17450714111328" lon="11.425860404968262">
+        <name>130125</name>
+      </trkpt>
+      <trkpt lat="48.175479888916016" lon="11.427002906799316">
+        <name>130124</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105591</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147145&#xA;      &#xA;      &#xA;        147146&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.140869140625" lon="11.424903869628906">
+        <name>147145</name>
+      </trkpt>
+      <trkpt lat="48.14219284057617" lon="11.424046516418457">
+        <name>147146</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87762</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130013&#xA;      &#xA;      &#xA;        130014&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.154937744140625" lon="11.430867195129395">
+        <name>130013</name>
+      </trkpt>
+      <trkpt lat="48.15498352050781" lon="11.43012523651123">
+        <name>130014</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90026</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132215&#xA;      &#xA;      &#xA;        132216&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22206115722656" lon="11.35512638092041">
+        <name>132215</name>
+      </trkpt>
+      <trkpt lat="48.222251892089844" lon="11.354974746704102">
+        <name>132216</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105167</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146710&#xA;      &#xA;      &#xA;        146716&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18158721923828" lon="11.725021362304688">
+        <name>146710</name>
+      </trkpt>
+      <trkpt lat="48.179595947265625" lon="11.727705955505371">
+        <name>146716</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85923</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128242&#xA;      &#xA;      &#xA;        128246&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17850112915039" lon="11.402514457702637">
+        <name>128242</name>
+      </trkpt>
+      <trkpt lat="48.17849349975586" lon="11.404114723205566">
+        <name>128246</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86772</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129042&#xA;      &#xA;      &#xA;        129043&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.215721130371094" lon="11.504316329956055">
+        <name>129042</name>
+      </trkpt>
+      <trkpt lat="48.21751022338867" lon="11.507829666137695">
+        <name>129043</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90168</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132345&#xA;      &#xA;      &#xA;        132346&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.255916595458984" lon="11.474270820617676">
+        <name>132345</name>
+      </trkpt>
+      <trkpt lat="48.255821228027344" lon="11.474470138549805">
+        <name>132346</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87904</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130124&#xA;      &#xA;      &#xA;        128961&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.175479888916016" lon="11.427002906799316">
+        <name>130124</name>
+      </trkpt>
+      <trkpt lat="48.17674255371094" lon="11.428302764892578">
+        <name>128961</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105592</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147146&#xA;      &#xA;      &#xA;        132140&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14219284057617" lon="11.424046516418457">
+        <name>147146</name>
+      </trkpt>
+      <trkpt lat="48.14286422729492" lon="11.423746109008789">
+        <name>132140</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87763</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130013&#xA;      &#xA;      &#xA;        130015&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.154937744140625" lon="11.430867195129395">
+        <name>130013</name>
+      </trkpt>
+      <trkpt lat="48.15481948852539" lon="11.432182312011719">
+        <name>130015</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90027</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132216&#xA;      &#xA;      &#xA;        132217&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.222251892089844" lon="11.354974746704102">
+        <name>132216</name>
+      </trkpt>
+      <trkpt lat="48.22220230102539" lon="11.354650497436523">
+        <name>132217</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105026</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146574&#xA;      &#xA;      &#xA;        146578&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20453643798828" lon="11.429862022399902">
+        <name>146574</name>
+      </trkpt>
+      <trkpt lat="48.2041130065918" lon="11.436518669128418">
+        <name>146578</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105168</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146716&#xA;      &#xA;      &#xA;        146717&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.179595947265625" lon="11.727705955505371">
+        <name>146716</name>
+      </trkpt>
+      <trkpt lat="48.17734909057617" lon="11.730448722839355">
+        <name>146717</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85924</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128246&#xA;      &#xA;      &#xA;        128247&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17849349975586" lon="11.404114723205566">
+        <name>128246</name>
+      </trkpt>
+      <trkpt lat="48.17707443237305" lon="11.406723976135254">
+        <name>128247</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86773</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129039&#xA;      &#xA;      &#xA;        129044&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2114372253418" lon="11.496403694152832">
+        <name>129039</name>
+      </trkpt>
+      <trkpt lat="48.21244430541992" lon="11.498373985290527">
+        <name>129044</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90169</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132346&#xA;      &#xA;      &#xA;        132347&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.255821228027344" lon="11.474470138549805">
+        <name>132346</name>
+      </trkpt>
+      <trkpt lat="48.25597381591797" lon="11.47467041015625">
+        <name>132347</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87905</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130125&#xA;      &#xA;      &#xA;        128958&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17450714111328" lon="11.425860404968262">
+        <name>130125</name>
+      </trkpt>
+      <trkpt lat="48.17410659790039" lon="11.425445556640625">
+        <name>128958</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87764</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130015&#xA;      &#xA;      &#xA;        130010&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15481948852539" lon="11.432182312011719">
+        <name>130015</name>
+      </trkpt>
+      <trkpt lat="48.155521392822266" lon="11.43220043182373">
+        <name>130010</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105169</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146717&#xA;      &#xA;      &#xA;        146718&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17734909057617" lon="11.730448722839355">
+        <name>146717</name>
+      </trkpt>
+      <trkpt lat="48.17458724975586" lon="11.733591079711914">
+        <name>146718</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85925</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128247&#xA;      &#xA;      &#xA;        128248&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17707443237305" lon="11.406723976135254">
+        <name>128247</name>
+      </trkpt>
+      <trkpt lat="48.17649841308594" lon="11.407581329345703">
+        <name>128248</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86774</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129044&#xA;      &#xA;      &#xA;        129045&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21244430541992" lon="11.498373985290527">
+        <name>129044</name>
+      </trkpt>
+      <trkpt lat="48.21406555175781" lon="11.500916481018066">
+        <name>129045</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90170</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132347&#xA;      &#xA;      &#xA;        132348&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25597381591797" lon="11.47467041015625">
+        <name>132347</name>
+      </trkpt>
+      <trkpt lat="48.25620651245117" lon="11.474527359008789">
+        <name>132348</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87906</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129837&#xA;      &#xA;      &#xA;        130129&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1616325378418" lon="11.429903030395508">
+        <name>129837</name>
+      </trkpt>
+      <trkpt lat="48.161285400390625" lon="11.429211616516113">
+        <name>130129</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87765</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130015&#xA;      &#xA;      &#xA;        130016&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15481948852539" lon="11.432182312011719">
+        <name>130015</name>
+      </trkpt>
+      <trkpt lat="48.154693603515625" lon="11.433305740356445">
+        <name>130016</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90029</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132218&#xA;      &#xA;      &#xA;        132219&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22201156616211" lon="11.354669570922852">
+        <name>132218</name>
+      </trkpt>
+      <trkpt lat="48.221961975097656" lon="11.354917526245117">
+        <name>132219</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85926</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128248&#xA;      &#xA;      &#xA;        128249&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17649841308594" lon="11.407581329345703">
+        <name>128248</name>
+      </trkpt>
+      <trkpt lat="48.1758918762207" lon="11.40815258026123">
+        <name>128249</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86775</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129045&#xA;      &#xA;      &#xA;        129046&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21406555175781" lon="11.500916481018066">
+        <name>129045</name>
+      </trkpt>
+      <trkpt lat="48.2159309387207" lon="11.504087448120117">
+        <name>129046</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90171</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132348&#xA;      &#xA;      &#xA;        132349&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25620651245117" lon="11.474527359008789">
+        <name>132348</name>
+      </trkpt>
+      <trkpt lat="48.25768280029297" lon="11.474699020385742">
+        <name>132349</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87907</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130129&#xA;      &#xA;      &#xA;        130128&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.161285400390625" lon="11.429211616516113">
+        <name>130129</name>
+      </trkpt>
+      <trkpt lat="48.160919189453125" lon="11.428182601928711">
+        <name>130128</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87766</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130016&#xA;      &#xA;      &#xA;        130023&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.154693603515625" lon="11.433305740356445">
+        <name>130016</name>
+      </trkpt>
+      <trkpt lat="48.15459060668945" lon="11.43441104888916">
+        <name>130023</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90030</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132219&#xA;      &#xA;      &#xA;        132215&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.221961975097656" lon="11.354917526245117">
+        <name>132219</name>
+      </trkpt>
+      <trkpt lat="48.22206115722656" lon="11.35512638092041">
+        <name>132215</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85927</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128249&#xA;      &#xA;      &#xA;        128250&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1758918762207" lon="11.40815258026123">
+        <name>128249</name>
+      </trkpt>
+      <trkpt lat="48.17540740966797" lon="11.408267974853516">
+        <name>128250</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86776</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129046&#xA;      &#xA;      &#xA;        129047&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2159309387207" lon="11.504087448120117">
+        <name>129046</name>
+      </trkpt>
+      <trkpt lat="48.21770095825195" lon="11.507600784301758">
+        <name>129047</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90172</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132349&#xA;      &#xA;      &#xA;        132350&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25768280029297" lon="11.474699020385742">
+        <name>132349</name>
+      </trkpt>
+      <trkpt lat="48.259647369384766" lon="11.475641250610352">
+        <name>132350</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87908</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130128&#xA;      &#xA;      &#xA;        130127&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.160919189453125" lon="11.428182601928711">
+        <name>130128</name>
+      </trkpt>
+      <trkpt lat="48.160640716552734" lon="11.427249908447266">
+        <name>130127</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87767</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130023&#xA;      &#xA;      &#xA;        130024&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15459060668945" lon="11.43441104888916">
+        <name>130023</name>
+      </trkpt>
+      <trkpt lat="48.15464782714844" lon="11.435458183288574">
+        <name>130024</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105030</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146578&#xA;      &#xA;      &#xA;        146581&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2041130065918" lon="11.436518669128418">
+        <name>146578</name>
+      </trkpt>
+      <trkpt lat="48.204078674316406" lon="11.438546180725098">
+        <name>146581</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85928</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128250&#xA;      &#xA;      &#xA;        128251&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17540740966797" lon="11.408267974853516">
+        <name>128250</name>
+      </trkpt>
+      <trkpt lat="48.17402267456055" lon="11.407696723937988">
+        <name>128251</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86777</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129043&#xA;      &#xA;      &#xA;        129048&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21751022338867" lon="11.507829666137695">
+        <name>129043</name>
+      </trkpt>
+      <trkpt lat="48.2188606262207" lon="11.51082992553711">
+        <name>129048</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90173</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132350&#xA;      &#xA;      &#xA;        132351&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.259647369384766" lon="11.475641250610352">
+        <name>132350</name>
+      </trkpt>
+      <trkpt lat="48.26178741455078" lon="11.476641654968262">
+        <name>132351</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87909</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130127&#xA;      &#xA;      &#xA;        129842&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.160640716552734" lon="11.427249908447266">
+        <name>130127</name>
+      </trkpt>
+      <trkpt lat="48.16069412231445" lon="11.426705360412598">
+        <name>129842</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87768</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130024&#xA;      &#xA;      &#xA;        130025&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15464782714844" lon="11.435458183288574">
+        <name>130024</name>
+      </trkpt>
+      <trkpt lat="48.15492248535156" lon="11.435439109802246">
+        <name>130025</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85929</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128251&#xA;      &#xA;      &#xA;        128252&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17402267456055" lon="11.407696723937988">
+        <name>128251</name>
+      </trkpt>
+      <trkpt lat="48.17267990112305" lon="11.407049179077148">
+        <name>128252</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86778</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129048&#xA;      &#xA;      &#xA;        129049&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2188606262207" lon="11.51082992553711">
+        <name>129048</name>
+      </trkpt>
+      <trkpt lat="48.220272064208984" lon="11.514314651489258">
+        <name>129049</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90174</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132351&#xA;      &#xA;      &#xA;        132352&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26178741455078" lon="11.476641654968262">
+        <name>132351</name>
+      </trkpt>
+      <trkpt lat="48.26192092895508" lon="11.476813316345215">
+        <name>132352</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87769</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130025&#xA;      &#xA;      &#xA;        130026&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15492248535156" lon="11.435439109802246">
+        <name>130025</name>
+      </trkpt>
+      <trkpt lat="48.15497589111328" lon="11.43635368347168">
+        <name>130026</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105032</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146581&#xA;      &#xA;      &#xA;        146584&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.204078674316406" lon="11.438546180725098">
+        <name>146581</name>
+      </trkpt>
+      <trkpt lat="48.20415496826172" lon="11.440888404846191">
+        <name>146584</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85930</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128252&#xA;      &#xA;      &#xA;        128253&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17267990112305" lon="11.407049179077148">
+        <name>128252</name>
+      </trkpt>
+      <trkpt lat="48.17221450805664" lon="11.406915664672852">
+        <name>128253</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86779</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129049&#xA;      &#xA;      &#xA;        129050&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.220272064208984" lon="11.514314651489258">
+        <name>129049</name>
+      </trkpt>
+      <trkpt lat="48.221527099609375" lon="11.517942428588867">
+        <name>129050</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90175</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132352&#xA;      &#xA;      &#xA;        132353&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26192092895508" lon="11.476813316345215">
+        <name>132352</name>
+      </trkpt>
+      <trkpt lat="48.26201629638672" lon="11.476641654968262">
+        <name>132353</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86638</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128914&#xA;      &#xA;      &#xA;        128913&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15797424316406" lon="11.413873672485352">
+        <name>128914</name>
+      </trkpt>
+      <trkpt lat="48.1573486328125" lon="11.414244651794434">
+        <name>128913</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87770</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130026&#xA;      &#xA;      &#xA;        130027&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15497589111328" lon="11.43635368347168">
+        <name>130026</name>
+      </trkpt>
+      <trkpt lat="48.154911041259766" lon="11.436753273010254">
+        <name>130027</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85931</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128253&#xA;      &#xA;      &#xA;        128254&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17221450805664" lon="11.406915664672852">
+        <name>128253</name>
+      </trkpt>
+      <trkpt lat="48.170616149902344" lon="11.4077730178833">
+        <name>128254</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86780</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129047&#xA;      &#xA;      &#xA;        129051&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21770095825195" lon="11.507600784301758">
+        <name>129047</name>
+      </trkpt>
+      <trkpt lat="48.21907424926758" lon="11.51057243347168">
+        <name>129051</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90176</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132353&#xA;      &#xA;      &#xA;        132354&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26201629638672" lon="11.476641654968262">
+        <name>132353</name>
+      </trkpt>
+      <trkpt lat="48.261959075927734" lon="11.476384162902832">
+        <name>132354</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86639</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128913&#xA;      &#xA;      &#xA;        128912&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1573486328125" lon="11.414244651794434">
+        <name>128913</name>
+      </trkpt>
+      <trkpt lat="48.157100677490234" lon="11.414644241333008">
+        <name>128912</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87771</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130027&#xA;      &#xA;      &#xA;        130028&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.154911041259766" lon="11.436753273010254">
+        <name>130027</name>
+      </trkpt>
+      <trkpt lat="48.15473175048828" lon="11.436982154846191">
+        <name>130028</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85932</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128254&#xA;      &#xA;      &#xA;        128255&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.170616149902344" lon="11.4077730178833">
+        <name>128254</name>
+      </trkpt>
+      <trkpt lat="48.16976547241211" lon="11.408915519714355">
+        <name>128255</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86781</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129051&#xA;      &#xA;      &#xA;        129052&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21907424926758" lon="11.51057243347168">
+        <name>129051</name>
+      </trkpt>
+      <trkpt lat="48.22052001953125" lon="11.514142990112305">
+        <name>129052</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90177</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132354&#xA;      &#xA;      &#xA;        132364&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.261959075927734" lon="11.476384162902832">
+        <name>132354</name>
+      </trkpt>
+      <trkpt lat="48.26213073730469" lon="11.475298881530762">
+        <name>132364</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86640</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128912&#xA;      &#xA;      &#xA;        128911&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.157100677490234" lon="11.414644241333008">
+        <name>128912</name>
+      </trkpt>
+      <trkpt lat="48.156982421875" lon="11.41515827178955">
+        <name>128911</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87772</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130028&#xA;      &#xA;      &#xA;        130029&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15473175048828" lon="11.436982154846191">
+        <name>130028</name>
+      </trkpt>
+      <trkpt lat="48.15450668334961" lon="11.436943054199219">
+        <name>130029</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105177</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146718&#xA;      &#xA;      &#xA;        146726&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17458724975586" lon="11.733591079711914">
+        <name>146718</name>
+      </trkpt>
+      <trkpt lat="48.17152404785156" lon="11.73678970336914">
+        <name>146726</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85933</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128255&#xA;      &#xA;      &#xA;        128256&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16976547241211" lon="11.408915519714355">
+        <name>128255</name>
+      </trkpt>
+      <trkpt lat="48.1685791015625" lon="11.410266876220703">
+        <name>128256</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86782</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129052&#xA;      &#xA;      &#xA;        129053&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22052001953125" lon="11.514142990112305">
+        <name>129052</name>
+      </trkpt>
+      <trkpt lat="48.22179412841797" lon="11.517857551574707">
+        <name>129053</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90178</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132364&#xA;      &#xA;      &#xA;        132363&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26213073730469" lon="11.475298881530762">
+        <name>132364</name>
+      </trkpt>
+      <trkpt lat="48.26237869262695" lon="11.473928451538086">
+        <name>132363</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86641</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128911&#xA;      &#xA;      &#xA;        128910&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.156982421875" lon="11.41515827178955">
+        <name>128911</name>
+      </trkpt>
+      <trkpt lat="48.1568717956543" lon="11.415644645690918">
+        <name>128910</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105036</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146584&#xA;      &#xA;      &#xA;        146587&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20415496826172" lon="11.440888404846191">
+        <name>146584</name>
+      </trkpt>
+      <trkpt lat="48.204288482666016" lon="11.4422025680542">
+        <name>146587</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87773</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130029&#xA;      &#xA;      &#xA;        130030&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15450668334961" lon="11.436943054199219">
+        <name>130029</name>
+      </trkpt>
+      <trkpt lat="48.15450668334961" lon="11.4371337890625">
+        <name>130030</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105178</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146726&#xA;      &#xA;      &#xA;        146727&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17152404785156" lon="11.73678970336914">
+        <name>146726</name>
+      </trkpt>
+      <trkpt lat="48.16843795776367" lon="11.739703178405762">
+        <name>146727</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85934</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128256&#xA;      &#xA;      &#xA;        128257&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1685791015625" lon="11.410266876220703">
+        <name>128256</name>
+      </trkpt>
+      <trkpt lat="48.16736602783203" lon="11.411163330078125">
+        <name>128257</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86783</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129050&#xA;      &#xA;      &#xA;        129054&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.221527099609375" lon="11.517942428588867">
+        <name>129050</name>
+      </trkpt>
+      <trkpt lat="48.22261047363281" lon="11.521598815917969">
+        <name>129054</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90179</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132363&#xA;      &#xA;      &#xA;        132362&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26237869262695" lon="11.473928451538086">
+        <name>132363</name>
+      </trkpt>
+      <trkpt lat="48.26258850097656" lon="11.472442626953125">
+        <name>132362</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86642</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128910&#xA;      &#xA;      &#xA;        128276&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1568717956543" lon="11.415644645690918">
+        <name>128910</name>
+      </trkpt>
+      <trkpt lat="48.15665054321289" lon="11.416059494018555">
+        <name>128276</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105037</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146587&#xA;      &#xA;      &#xA;        146586&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.204288482666016" lon="11.4422025680542">
+        <name>146587</name>
+      </trkpt>
+      <trkpt lat="48.20442199707031" lon="11.443488121032715">
+        <name>146586</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96830</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132329&#xA;      &#xA;      &#xA;        138494&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24520492553711" lon="11.474727630615234">
+        <name>132329</name>
+      </trkpt>
+      <trkpt lat="48.24631118774414" lon="11.475956916809082">
+        <name>138494</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87774</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130030&#xA;      &#xA;      &#xA;        130028&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15450668334961" lon="11.4371337890625">
+        <name>130030</name>
+      </trkpt>
+      <trkpt lat="48.15473175048828" lon="11.436982154846191">
+        <name>130028</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105179</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146727&#xA;      &#xA;      &#xA;        146729&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16843795776367" lon="11.739703178405762">
+        <name>146727</name>
+      </trkpt>
+      <trkpt lat="48.16543197631836" lon="11.742560386657715">
+        <name>146729</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85935</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128257&#xA;      &#xA;      &#xA;        128258&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16736602783203" lon="11.411163330078125">
+        <name>128257</name>
+      </trkpt>
+      <trkpt lat="48.166194915771484" lon="11.412018775939941">
+        <name>128258</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86784</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129054&#xA;      &#xA;      &#xA;        129055&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22261047363281" lon="11.521598815917969">
+        <name>129054</name>
+      </trkpt>
+      <trkpt lat="48.223655700683594" lon="11.525911331176758">
+        <name>129055</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90180</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132362&#xA;      &#xA;      &#xA;        132361&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26258850097656" lon="11.472442626953125">
+        <name>132362</name>
+      </trkpt>
+      <trkpt lat="48.262760162353516" lon="11.470842361450195">
+        <name>132361</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105038</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146586&#xA;      &#xA;      &#xA;        129001&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20442199707031" lon="11.443488121032715">
+        <name>146586</name>
+      </trkpt>
+      <trkpt lat="48.204429626464844" lon="11.445259094238281">
+        <name>129001</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86643</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128267&#xA;      &#xA;      &#xA;        128916&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16178512573242" lon="11.414077758789062">
+        <name>128267</name>
+      </trkpt>
+      <trkpt lat="48.1619873046875" lon="11.413928985595703">
+        <name>128916</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87775</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130025&#xA;      &#xA;      &#xA;        130020&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15492248535156" lon="11.435439109802246">
+        <name>130025</name>
+      </trkpt>
+      <trkpt lat="48.15591812133789" lon="11.435287475585938">
+        <name>130020</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86785</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129055&#xA;      &#xA;      &#xA;        129056&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.223655700683594" lon="11.525911331176758">
+        <name>129055</name>
+      </trkpt>
+      <trkpt lat="48.224586486816406" lon="11.530768394470215">
+        <name>129056</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90181</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132361&#xA;      &#xA;      &#xA;        132360&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.262760162353516" lon="11.470842361450195">
+        <name>132361</name>
+      </trkpt>
+      <trkpt lat="48.262760162353516" lon="11.46955680847168">
+        <name>132360</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85936</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128258&#xA;      &#xA;      &#xA;        128259&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.166194915771484" lon="11.412018775939941">
+        <name>128258</name>
+      </trkpt>
+      <trkpt lat="48.16596603393555" lon="11.41179084777832">
+        <name>128259</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86644</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128916&#xA;      &#xA;      &#xA;        128917&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1619873046875" lon="11.413928985595703">
+        <name>128916</name>
+      </trkpt>
+      <trkpt lat="48.162132263183594" lon="11.41381549835205">
+        <name>128917</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87776</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130020&#xA;      &#xA;      &#xA;        130021&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15591812133789" lon="11.435287475585938">
+        <name>130020</name>
+      </trkpt>
+      <trkpt lat="48.155826568603516" lon="11.4338960647583">
+        <name>130021</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86786</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129053&#xA;      &#xA;      &#xA;        129057&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22179412841797" lon="11.517857551574707">
+        <name>129053</name>
+      </trkpt>
+      <trkpt lat="48.22285842895508" lon="11.521598815917969">
+        <name>129057</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90182</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132360&#xA;      &#xA;      &#xA;        132359&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.262760162353516" lon="11.46955680847168">
+        <name>132360</name>
+      </trkpt>
+      <trkpt lat="48.26260757446289" lon="11.469271659851074">
+        <name>132359</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85937</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128259&#xA;      &#xA;      &#xA;        128260&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16596603393555" lon="11.41179084777832">
+        <name>128259</name>
+      </trkpt>
+      <trkpt lat="48.165382385253906" lon="11.411848068237305">
+        <name>128260</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86645</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128917&#xA;      &#xA;      &#xA;        128265&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.162132263183594" lon="11.41381549835205">
+        <name>128917</name>
+      </trkpt>
+      <trkpt lat="48.16254806518555" lon="11.413848876953125">
+        <name>128265</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87777</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130021&#xA;      &#xA;      &#xA;        130022&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155826568603516" lon="11.4338960647583">
+        <name>130021</name>
+      </trkpt>
+      <trkpt lat="48.1557731628418" lon="11.43345832824707">
+        <name>130022</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90183</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132359&#xA;      &#xA;      &#xA;        132358&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26260757446289" lon="11.469271659851074">
+        <name>132359</name>
+      </trkpt>
+      <trkpt lat="48.26184844970703" lon="11.469328880310059">
+        <name>132358</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85938</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128260&#xA;      &#xA;      &#xA;        128261&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.165382385253906" lon="11.411848068237305">
+        <name>128260</name>
+      </trkpt>
+      <trkpt lat="48.165409088134766" lon="11.412210464477539">
+        <name>128261</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86787</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129057&#xA;      &#xA;      &#xA;        129058&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22285842895508" lon="11.521598815917969">
+        <name>129057</name>
+      </trkpt>
+      <trkpt lat="48.22390365600586" lon="11.525740623474121">
+        <name>129058</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86646</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128267&#xA;      &#xA;      &#xA;        128918&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16178512573242" lon="11.414077758789062">
+        <name>128267</name>
+      </trkpt>
+      <trkpt lat="48.16201400756836" lon="11.414069175720215">
+        <name>128918</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96834</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138494&#xA;      &#xA;      &#xA;        138495&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24631118774414" lon="11.475956916809082">
+        <name>138494</name>
+      </trkpt>
+      <trkpt lat="48.247642517089844" lon="11.477270126342773">
+        <name>138495</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87778</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130022&#xA;      &#xA;      &#xA;        130009&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1557731628418" lon="11.43345832824707">
+        <name>130022</name>
+      </trkpt>
+      <trkpt lat="48.155662536621094" lon="11.432219505310059">
+        <name>130009</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105183</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146732&#xA;      &#xA;      &#xA;        146729&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.160892486572266" lon="11.74661636352539">
+        <name>146732</name>
+      </trkpt>
+      <trkpt lat="48.16543197631836" lon="11.742560386657715">
+        <name>146729</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90184</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132358&#xA;      &#xA;      &#xA;        132357&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26184844970703" lon="11.469328880310059">
+        <name>132358</name>
+      </trkpt>
+      <trkpt lat="48.25956726074219" lon="11.46955680847168">
+        <name>132357</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85939</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128261&#xA;      &#xA;      &#xA;        128262&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.165409088134766" lon="11.412210464477539">
+        <name>128261</name>
+      </trkpt>
+      <trkpt lat="48.165409088134766" lon="11.4125337600708">
+        <name>128262</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86788</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129058&#xA;      &#xA;      &#xA;        129059&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22390365600586" lon="11.525740623474121">
+        <name>129058</name>
+      </trkpt>
+      <trkpt lat="48.224857330322266" lon="11.530540466308594">
+        <name>129059</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86647</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128918&#xA;      &#xA;      &#xA;        128916&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16201400756836" lon="11.414069175720215">
+        <name>128918</name>
+      </trkpt>
+      <trkpt lat="48.1619873046875" lon="11.413928985595703">
+        <name>128916</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87779</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130022&#xA;      &#xA;      &#xA;        130016&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1557731628418" lon="11.43345832824707">
+        <name>130022</name>
+      </trkpt>
+      <trkpt lat="48.154693603515625" lon="11.433305740356445">
+        <name>130016</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90185</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132357&#xA;      &#xA;      &#xA;        132356&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25956726074219" lon="11.46955680847168">
+        <name>132357</name>
+      </trkpt>
+      <trkpt lat="48.2574348449707" lon="11.469785690307617">
+        <name>132356</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85940</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128262&#xA;      &#xA;      &#xA;        128263&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.165409088134766" lon="11.4125337600708">
+        <name>128262</name>
+      </trkpt>
+      <trkpt lat="48.164371490478516" lon="11.41325855255127">
+        <name>128263</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86789</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129056&#xA;      &#xA;      &#xA;        129060&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.224586486816406" lon="11.530768394470215">
+        <name>129056</name>
+      </trkpt>
+      <trkpt lat="48.22489547729492" lon="11.532710075378418">
+        <name>129060</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86648</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128918&#xA;      &#xA;      &#xA;        128919&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16201400756836" lon="11.414069175720215">
+        <name>128918</name>
+      </trkpt>
+      <trkpt lat="48.162410736083984" lon="11.414386749267578">
+        <name>128919</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96836</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138495&#xA;      &#xA;      &#xA;        138500&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.247642517089844" lon="11.477270126342773">
+        <name>138495</name>
+      </trkpt>
+      <trkpt lat="48.248687744140625" lon="11.478499412536621">
+        <name>138500</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87780</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130017&#xA;      &#xA;      &#xA;        130031&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15703201293945" lon="11.431781768798828">
+        <name>130017</name>
+      </trkpt>
+      <trkpt lat="48.157081604003906" lon="11.433610916137695">
+        <name>130031</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90186</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132356&#xA;      &#xA;      &#xA;        132355&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2574348449707" lon="11.469785690307617">
+        <name>132356</name>
+      </trkpt>
+      <trkpt lat="48.25676727294922" lon="11.470014572143555">
+        <name>132355</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85941</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128263&#xA;      &#xA;      &#xA;        128264&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.164371490478516" lon="11.41325855255127">
+        <name>128263</name>
+      </trkpt>
+      <trkpt lat="48.163360595703125" lon="11.4137544631958">
+        <name>128264</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86790</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129060&#xA;      &#xA;      &#xA;        129061&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22489547729492" lon="11.532710075378418">
+        <name>129060</name>
+      </trkpt>
+      <trkpt lat="48.22493362426758" lon="11.533967018127441">
+        <name>129061</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86649</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128919&#xA;      &#xA;      &#xA;        128920&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.162410736083984" lon="11.414386749267578">
+        <name>128919</name>
+      </trkpt>
+      <trkpt lat="48.163089752197266" lon="11.41486930847168">
+        <name>128920</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96837</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138500&#xA;      &#xA;      &#xA;        138503&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.248687744140625" lon="11.478499412536621">
+        <name>138500</name>
+      </trkpt>
+      <trkpt lat="48.24971389770508" lon="11.480213165283203">
+        <name>138503</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87781</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130031&#xA;      &#xA;      &#xA;        130021&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.157081604003906" lon="11.433610916137695">
+        <name>130031</name>
+      </trkpt>
+      <trkpt lat="48.155826568603516" lon="11.4338960647583">
+        <name>130021</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90187</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132355&#xA;      &#xA;      &#xA;        132341&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25676727294922" lon="11.470014572143555">
+        <name>132355</name>
+      </trkpt>
+      <trkpt lat="48.2557258605957" lon="11.470643043518066">
+        <name>132341</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85942</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128264&#xA;      &#xA;      &#xA;        128265&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.163360595703125" lon="11.4137544631958">
+        <name>128264</name>
+      </trkpt>
+      <trkpt lat="48.16254806518555" lon="11.413848876953125">
+        <name>128265</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86791</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129061&#xA;      &#xA;      &#xA;        129062&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22493362426758" lon="11.533967018127441">
+        <name>129061</name>
+      </trkpt>
+      <trkpt lat="48.22478103637695" lon="11.535195350646973">
+        <name>129062</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86650</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128920&#xA;      &#xA;      &#xA;        128921&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.163089752197266" lon="11.41486930847168">
+        <name>128920</name>
+      </trkpt>
+      <trkpt lat="48.16351318359375" lon="11.415148735046387">
+        <name>128921</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87782</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130020&#xA;      &#xA;      &#xA;        130019&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15591812133789" lon="11.435287475585938">
+        <name>130020</name>
+      </trkpt>
+      <trkpt lat="48.15719985961914" lon="11.435076713562012">
+        <name>130019</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105187</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146732&#xA;      &#xA;      &#xA;        146736&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.160892486572266" lon="11.74661636352539">
+        <name>146732</name>
+      </trkpt>
+      <trkpt lat="48.15791320800781" lon="11.749157905578613">
+        <name>146736</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86792</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129062&#xA;      &#xA;      &#xA;        129063&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22478103637695" lon="11.535195350646973">
+        <name>129062</name>
+      </trkpt>
+      <trkpt lat="48.22428894042969" lon="11.536967277526855">
+        <name>129063</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86651</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128921&#xA;      &#xA;      &#xA;        128922&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16351318359375" lon="11.415148735046387">
+        <name>128921</name>
+      </trkpt>
+      <trkpt lat="48.16387176513672" lon="11.415186882019043">
+        <name>128922</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87783</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130019&#xA;      &#xA;      &#xA;        130018&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15719985961914" lon="11.435076713562012">
+        <name>130019</name>
+      </trkpt>
+      <trkpt lat="48.15801239013672" lon="11.433935165405273">
+        <name>130018</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105188</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146736&#xA;      &#xA;      &#xA;        146737&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15791320800781" lon="11.749157905578613">
+        <name>146736</name>
+      </trkpt>
+      <trkpt lat="48.15407943725586" lon="11.75218677520752">
+        <name>146737</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86793</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129063&#xA;      &#xA;      &#xA;        129064&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22428894042969" lon="11.536967277526855">
+        <name>129063</name>
+      </trkpt>
+      <trkpt lat="48.22418975830078" lon="11.538480758666992">
+        <name>129064</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86652</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128922&#xA;      &#xA;      &#xA;        128923&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16387176513672" lon="11.415186882019043">
+        <name>128922</name>
+      </trkpt>
+      <trkpt lat="48.16447830200195" lon="11.414944648742676">
+        <name>128923</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96840</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138503&#xA;      &#xA;      &#xA;        138504&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24971389770508" lon="11.480213165283203">
+        <name>138503</name>
+      </trkpt>
+      <trkpt lat="48.250606536865234" lon="11.48232650756836">
+        <name>138504</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87784</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130018&#xA;      &#xA;      &#xA;        130004&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15801239013672" lon="11.433935165405273">
+        <name>130018</name>
+      </trkpt>
+      <trkpt lat="48.15778350830078" lon="11.430315971374512">
+        <name>130004</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105189</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146737&#xA;      &#xA;      &#xA;        146738&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15407943725586" lon="11.75218677520752">
+        <name>146737</name>
+      </trkpt>
+      <trkpt lat="48.15127182006836" lon="11.754128456115723">
+        <name>146738</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85945</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128267&#xA;      &#xA;      &#xA;        128268&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16178512573242" lon="11.414077758789062">
+        <name>128267</name>
+      </trkpt>
+      <trkpt lat="48.16078186035156" lon="11.414229393005371">
+        <name>128268</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86794</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129064&#xA;      &#xA;      &#xA;        129065&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22418975830078" lon="11.538480758666992">
+        <name>129064</name>
+      </trkpt>
+      <trkpt lat="48.22443771362305" lon="11.539909362792969">
+        <name>129065</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86653</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128923&#xA;      &#xA;      &#xA;        128924&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16447830200195" lon="11.414944648742676">
+        <name>128923</name>
+      </trkpt>
+      <trkpt lat="48.16474533081055" lon="11.414895057678223">
+        <name>128924</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87785</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129861&#xA;      &#xA;      &#xA;        130032&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15625" lon="11.421810150146484">
+        <name>129861</name>
+      </trkpt>
+      <trkpt lat="48.15654754638672" lon="11.422792434692383">
+        <name>130032</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105190</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146738&#xA;      &#xA;      &#xA;        146739&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15127182006836" lon="11.754128456115723">
+        <name>146738</name>
+      </trkpt>
+      <trkpt lat="48.14774703979492" lon="11.75610065460205">
+        <name>146739</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85946</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128268&#xA;      &#xA;      &#xA;        128269&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16078186035156" lon="11.414229393005371">
+        <name>128268</name>
+      </trkpt>
+      <trkpt lat="48.16022491455078" lon="11.414629936218262">
+        <name>128269</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86795</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129065&#xA;      &#xA;      &#xA;        129066&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22443771362305" lon="11.539909362792969">
+        <name>129065</name>
+      </trkpt>
+      <trkpt lat="48.22504806518555" lon="11.541051864624023">
+        <name>129066</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86654</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128924&#xA;      &#xA;      &#xA;        128925&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16474533081055" lon="11.414895057678223">
+        <name>128924</name>
+      </trkpt>
+      <trkpt lat="48.16510772705078" lon="11.414983749389648">
+        <name>128925</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87786</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130032&#xA;      &#xA;      &#xA;        129859&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15654754638672" lon="11.422792434692383">
+        <name>130032</name>
+      </trkpt>
+      <trkpt lat="48.1568717956543" lon="11.424266815185547">
+        <name>129859</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105191</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146739&#xA;      &#xA;      &#xA;        146740&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14774703979492" lon="11.75610065460205">
+        <name>146739</name>
+      </trkpt>
+      <trkpt lat="48.14534378051758" lon="11.757185935974121">
+        <name>146740</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85947</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128269&#xA;      &#xA;      &#xA;        128270&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16022491455078" lon="11.414629936218262">
+        <name>128269</name>
+      </trkpt>
+      <trkpt lat="48.15998077392578" lon="11.415048599243164">
+        <name>128270</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86796</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129066&#xA;      &#xA;      &#xA;        129067&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22504806518555" lon="11.541051864624023">
+        <name>129066</name>
+      </trkpt>
+      <trkpt lat="48.225921630859375" lon="11.541851997375488">
+        <name>129067</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86655</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128925&#xA;      &#xA;      &#xA;        128926&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16510772705078" lon="11.414983749389648">
+        <name>128925</name>
+      </trkpt>
+      <trkpt lat="48.16567611694336" lon="11.415567398071289">
+        <name>128926</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87787</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129851&#xA;      &#xA;      &#xA;        130039&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15902328491211" lon="11.4244384765625">
+        <name>129851</name>
+      </trkpt>
+      <trkpt lat="48.1588249206543" lon="11.424487113952637">
+        <name>130039</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105192</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146740&#xA;      &#xA;      &#xA;        146741&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14534378051758" lon="11.757185935974121">
+        <name>146740</name>
+      </trkpt>
+      <trkpt lat="48.142581939697266" lon="11.758014678955078">
+        <name>146741</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85948</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128270&#xA;      &#xA;      &#xA;        128271&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15998077392578" lon="11.415048599243164">
+        <name>128270</name>
+      </trkpt>
+      <trkpt lat="48.15922927856445" lon="11.415238380432129">
+        <name>128271</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86797</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129067&#xA;      &#xA;      &#xA;        129068&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.225921630859375" lon="11.541851997375488">
+        <name>129067</name>
+      </trkpt>
+      <trkpt lat="48.22712326049805" lon="11.542451858520508">
+        <name>129068</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105051</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146602&#xA;      &#xA;      &#xA;        129071&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2260856628418" lon="11.539873123168945">
+        <name>146602</name>
+      </trkpt>
+      <trkpt lat="48.22574996948242" lon="11.536452293395996">
+        <name>129071</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87788</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130039&#xA;      &#xA;      &#xA;        129853&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1588249206543" lon="11.424487113952637">
+        <name>130039</name>
+      </trkpt>
+      <trkpt lat="48.15824508666992" lon="11.42487621307373">
+        <name>129853</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86656</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128926&#xA;      &#xA;      &#xA;        128927&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16567611694336" lon="11.415567398071289">
+        <name>128926</name>
+      </trkpt>
+      <trkpt lat="48.16618728637695" lon="11.415833473205566">
+        <name>128927</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105193</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146741&#xA;      &#xA;      &#xA;        146742&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.142581939697266" lon="11.758014678955078">
+        <name>146741</name>
+      </trkpt>
+      <trkpt lat="48.14021682739258" lon="11.758528709411621">
+        <name>146742</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85949</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128271&#xA;      &#xA;      &#xA;        128272&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15922927856445" lon="11.415238380432129">
+        <name>128271</name>
+      </trkpt>
+      <trkpt lat="48.15910339355469" lon="11.415334701538086">
+        <name>128272</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86798</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129059&#xA;      &#xA;      &#xA;        129069&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.224857330322266" lon="11.530540466308594">
+        <name>129059</name>
+      </trkpt>
+      <trkpt lat="48.225215911865234" lon="11.532767295837402">
+        <name>129069</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87647</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129911&#xA;      &#xA;      &#xA;        129912&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23150634765625" lon="11.35140323638916">
+        <name>129911</name>
+      </trkpt>
+      <trkpt lat="48.22893524169922" lon="11.355859756469727">
+        <name>129912</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87789</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130039&#xA;      &#xA;      &#xA;        130038&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1588249206543" lon="11.424487113952637">
+        <name>130039</name>
+      </trkpt>
+      <trkpt lat="48.158226013183594" lon="11.421916007995605">
+        <name>130038</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86657</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128927&#xA;      &#xA;      &#xA;        128928&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16618728637695" lon="11.415833473205566">
+        <name>128927</name>
+      </trkpt>
+      <trkpt lat="48.16657638549805" lon="11.41580867767334">
+        <name>128928</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86799</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129069&#xA;      &#xA;      &#xA;        129070&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.225215911865234" lon="11.532767295837402">
+        <name>129069</name>
+      </trkpt>
+      <trkpt lat="48.225502014160156" lon="11.534652709960938">
+        <name>129070</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87648</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129912&#xA;      &#xA;      &#xA;        129913&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22893524169922" lon="11.355859756469727">
+        <name>129912</name>
+      </trkpt>
+      <trkpt lat="48.22579574584961" lon="11.361201286315918">
+        <name>129913</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87790</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130038&#xA;      &#xA;      &#xA;        130037&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.158226013183594" lon="11.421916007995605">
+        <name>130038</name>
+      </trkpt>
+      <trkpt lat="48.15766525268555" lon="11.419611930847168">
+        <name>130037</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86658</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128928&#xA;      &#xA;      &#xA;        128929&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16657638549805" lon="11.41580867767334">
+        <name>128928</name>
+      </trkpt>
+      <trkpt lat="48.16694259643555" lon="11.415630340576172">
+        <name>128929</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86800</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129070&#xA;      &#xA;      &#xA;        129071&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.225502014160156" lon="11.534652709960938">
+        <name>129070</name>
+      </trkpt>
+      <trkpt lat="48.22574996948242" lon="11.536452293395996">
+        <name>129071</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87649</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129913&#xA;      &#xA;      &#xA;        129914&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22579574584961" lon="11.361201286315918">
+        <name>129913</name>
+      </trkpt>
+      <trkpt lat="48.22277069091797" lon="11.366313934326172">
+        <name>129914</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87791</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130038&#xA;      &#xA;      &#xA;        130033&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.158226013183594" lon="11.421916007995605">
+        <name>130038</name>
+      </trkpt>
+      <trkpt lat="48.157161712646484" lon="11.422430038452148">
+        <name>130033</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86659</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128929&#xA;      &#xA;      &#xA;        128930&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16694259643555" lon="11.415630340576172">
+        <name>128929</name>
+      </trkpt>
+      <trkpt lat="48.16719436645508" lon="11.41550350189209">
+        <name>128930</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85952</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128274&#xA;      &#xA;      &#xA;        128275&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15804672241211" lon="11.415238380432129">
+        <name>128274</name>
+      </trkpt>
+      <trkpt lat="48.1573371887207" lon="11.415735244750977">
+        <name>128275</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86801</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129071&#xA;      &#xA;      &#xA;        129072&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22574996948242" lon="11.536452293395996">
+        <name>129071</name>
+      </trkpt>
+      <trkpt lat="48.22603988647461" lon="11.538566589355469">
+        <name>129072</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87650</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129914&#xA;      &#xA;      &#xA;        129915&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22277069091797" lon="11.366313934326172">
+        <name>129914</name>
+      </trkpt>
+      <trkpt lat="48.21953582763672" lon="11.371770858764648">
+        <name>129915</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96848</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138504&#xA;      &#xA;      &#xA;        138515&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.250606536865234" lon="11.48232650756836">
+        <name>138504</name>
+      </trkpt>
+      <trkpt lat="48.25114440917969" lon="11.48441219329834">
+        <name>138515</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87792</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130033&#xA;      &#xA;      &#xA;        130032&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.157161712646484" lon="11.422430038452148">
+        <name>130033</name>
+      </trkpt>
+      <trkpt lat="48.15654754638672" lon="11.422792434692383">
+        <name>130032</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86660</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128930&#xA;      &#xA;      &#xA;        128931&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16719436645508" lon="11.41550350189209">
+        <name>128930</name>
+      </trkpt>
+      <trkpt lat="48.16734313964844" lon="11.415529251098633">
+        <name>128931</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85953</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128275&#xA;      &#xA;      &#xA;        128276&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1573371887207" lon="11.415735244750977">
+        <name>128275</name>
+      </trkpt>
+      <trkpt lat="48.15665054321289" lon="11.416059494018555">
+        <name>128276</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86802</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129072&#xA;      &#xA;      &#xA;        129073&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22603988647461" lon="11.538566589355469">
+        <name>129072</name>
+      </trkpt>
+      <trkpt lat="48.22649383544922" lon="11.540166854858398">
+        <name>129073</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87651</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129915&#xA;      &#xA;      &#xA;        129916&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21953582763672" lon="11.371770858764648">
+        <name>129915</name>
+      </trkpt>
+      <trkpt lat="48.21617126464844" lon="11.377541542053223">
+        <name>129916</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96849</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138515&#xA;      &#xA;      &#xA;        138516&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25114440917969" lon="11.48441219329834">
+        <name>138515</name>
+      </trkpt>
+      <trkpt lat="48.25156021118164" lon="11.487468719482422">
+        <name>138516</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87793</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130033&#xA;      &#xA;      &#xA;        130034&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.157161712646484" lon="11.422430038452148">
+        <name>130033</name>
+      </trkpt>
+      <trkpt lat="48.15665054321289" lon="11.420639991760254">
+        <name>130034</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86661</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128931&#xA;      &#xA;      &#xA;        128932&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16734313964844" lon="11.415529251098633">
+        <name>128931</name>
+      </trkpt>
+      <trkpt lat="48.16770553588867" lon="11.416025161743164">
+        <name>128932</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105198</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146742&#xA;      &#xA;      &#xA;        146754&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14021682739258" lon="11.758528709411621">
+        <name>146742</name>
+      </trkpt>
+      <trkpt lat="48.13761901855469" lon="11.758956909179688">
+        <name>146754</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85954</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128276&#xA;      &#xA;      &#xA;        128277&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15665054321289" lon="11.416059494018555">
+        <name>128276</name>
+      </trkpt>
+      <trkpt lat="48.15625" lon="11.41647720336914">
+        <name>128277</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86803</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129073&#xA;      &#xA;      &#xA;        129074&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22649383544922" lon="11.540166854858398">
+        <name>129073</name>
+      </trkpt>
+      <trkpt lat="48.22732925415039" lon="11.541537284851074">
+        <name>129074</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87652</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129916&#xA;      &#xA;      &#xA;        129917&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21617126464844" lon="11.377541542053223">
+        <name>129916</name>
+      </trkpt>
+      <trkpt lat="48.21318054199219" lon="11.382625579833984">
+        <name>129917</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105057</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146602&#xA;      &#xA;      &#xA;        146606&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2260856628418" lon="11.539873123168945">
+        <name>146602</name>
+      </trkpt>
+      <trkpt lat="48.22639846801758" lon="11.543713569641113">
+        <name>146606</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96850</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138516&#xA;      &#xA;      &#xA;        138517&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25156021118164" lon="11.487468719482422">
+        <name>138516</name>
+      </trkpt>
+      <trkpt lat="48.251827239990234" lon="11.49038314819336">
+        <name>138517</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87794</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130034&#xA;      &#xA;      &#xA;        130035&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15665054321289" lon="11.420639991760254">
+        <name>130034</name>
+      </trkpt>
+      <trkpt lat="48.15665054321289" lon="11.420392036437988">
+        <name>130035</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86662</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128932&#xA;      &#xA;      &#xA;        128933&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16770553588867" lon="11.416025161743164">
+        <name>128932</name>
+      </trkpt>
+      <trkpt lat="48.16789245605469" lon="11.416291236877441">
+        <name>128933</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86804</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129068&#xA;      &#xA;      &#xA;        129075&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22712326049805" lon="11.542451858520508">
+        <name>129068</name>
+      </trkpt>
+      <trkpt lat="48.228553771972656" lon="11.542908668518066">
+        <name>129075</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87653</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129917&#xA;      &#xA;      &#xA;        129918&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21318054199219" lon="11.382625579833984">
+        <name>129917</name>
+      </trkpt>
+      <trkpt lat="48.20954513549805" lon="11.38876724243164">
+        <name>129918</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105058</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146606&#xA;      &#xA;      &#xA;        146607&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22639846801758" lon="11.543713569641113">
+        <name>146606</name>
+      </trkpt>
+      <trkpt lat="48.22660827636719" lon="11.547627449035645">
+        <name>146607</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96851</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138517&#xA;      &#xA;      &#xA;        138518&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.251827239990234" lon="11.49038314819336">
+        <name>138517</name>
+      </trkpt>
+      <trkpt lat="48.25215148925781" lon="11.49281120300293">
+        <name>138518</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87795</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130035&#xA;      &#xA;      &#xA;        130036&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15665054321289" lon="11.420392036437988">
+        <name>130035</name>
+      </trkpt>
+      <trkpt lat="48.156776428222656" lon="11.42016315460205">
+        <name>130036</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86663</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128933&#xA;      &#xA;      &#xA;        128934&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16789245605469" lon="11.416291236877441">
+        <name>128933</name>
+      </trkpt>
+      <trkpt lat="48.16802978515625" lon="11.416316986083984">
+        <name>128934</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86805</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129075&#xA;      &#xA;      &#xA;        129076&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.228553771972656" lon="11.542908668518066">
+        <name>129075</name>
+      </trkpt>
+      <trkpt lat="48.2298698425293" lon="11.542994499206543">
+        <name>129076</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87654</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129918&#xA;      &#xA;      &#xA;        129919&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20954513549805" lon="11.38876724243164">
+        <name>129918</name>
+      </trkpt>
+      <trkpt lat="48.207340240478516" lon="11.392509460449219">
+        <name>129919</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96852</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138518&#xA;      &#xA;      &#xA;        138519&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25215148925781" lon="11.49281120300293">
+        <name>138518</name>
+      </trkpt>
+      <trkpt lat="48.252685546875" lon="11.495067596435547">
+        <name>138519</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87796</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130036&#xA;      &#xA;      &#xA;        130037&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.156776428222656" lon="11.42016315460205">
+        <name>130036</name>
+      </trkpt>
+      <trkpt lat="48.15766525268555" lon="11.419611930847168">
+        <name>130037</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86664</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128934&#xA;      &#xA;      &#xA;        128935&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16802978515625" lon="11.416316986083984">
+        <name>128934</name>
+      </trkpt>
+      <trkpt lat="48.16826629638672" lon="11.41601276397705">
+        <name>128935</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105201</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146754&#xA;      &#xA;      &#xA;        146755&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13761901855469" lon="11.758956909179688">
+        <name>146754</name>
+      </trkpt>
+      <trkpt lat="48.13386535644531" lon="11.759300231933594">
+        <name>146755</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85957</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128279&#xA;      &#xA;      &#xA;        128280&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1557731628418" lon="11.418363571166992">
+        <name>128279</name>
+      </trkpt>
+      <trkpt lat="48.155609130859375" lon="11.419143676757812">
+        <name>128280</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86806</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129076&#xA;      &#xA;      &#xA;        129077&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2298698425293" lon="11.542994499206543">
+        <name>129076</name>
+      </trkpt>
+      <trkpt lat="48.23091125488281" lon="11.542795181274414">
+        <name>129077</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87655</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129919&#xA;      &#xA;      &#xA;        129920&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.207340240478516" lon="11.392509460449219">
+        <name>129919</name>
+      </trkpt>
+      <trkpt lat="48.20571517944336" lon="11.395195007324219">
+        <name>129920</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105060</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146607&#xA;      &#xA;      &#xA;        146608&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22660827636719" lon="11.547627449035645">
+        <name>146607</name>
+      </trkpt>
+      <trkpt lat="48.226741790771484" lon="11.552311897277832">
+        <name>146608</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87797</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130037&#xA;      &#xA;      &#xA;        130040&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15766525268555" lon="11.419611930847168">
+        <name>130037</name>
+      </trkpt>
+      <trkpt lat="48.15742874145508" lon="11.41877269744873">
+        <name>130040</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86665</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128935&#xA;      &#xA;      &#xA;        128936&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16826629638672" lon="11.41601276397705">
+        <name>128935</name>
+      </trkpt>
+      <trkpt lat="48.16837692260742" lon="11.415733337402344">
+        <name>128936</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85958</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128280&#xA;      &#xA;      &#xA;        128281&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155609130859375" lon="11.419143676757812">
+        <name>128280</name>
+      </trkpt>
+      <trkpt lat="48.155609130859375" lon="11.419639587402344">
+        <name>128281</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86807</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129077&#xA;      &#xA;      &#xA;        129078&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23091125488281" lon="11.542795181274414">
+        <name>129077</name>
+      </trkpt>
+      <trkpt lat="48.23218536376953" lon="11.542280197143555">
+        <name>129078</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87656</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129920&#xA;      &#xA;      &#xA;        129921&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20571517944336" lon="11.395195007324219">
+        <name>129920</name>
+      </trkpt>
+      <trkpt lat="48.2041015625" lon="11.39770793914795">
+        <name>129921</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96854</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138519&#xA;      &#xA;      &#xA;        138520&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.252685546875" lon="11.495067596435547">
+        <name>138519</name>
+      </trkpt>
+      <trkpt lat="48.25344467163086" lon="11.497037887573242">
+        <name>138520</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87798</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130040&#xA;      &#xA;      &#xA;        130041&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15742874145508" lon="11.41877269744873">
+        <name>130040</name>
+      </trkpt>
+      <trkpt lat="48.158077239990234" lon="11.41846752166748">
+        <name>130041</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86666</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128936&#xA;      &#xA;      &#xA;        128937&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16837692260742" lon="11.415733337402344">
+        <name>128936</name>
+      </trkpt>
+      <trkpt lat="48.16828918457031" lon="11.415287971496582">
+        <name>128937</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85959</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128281&#xA;      &#xA;      &#xA;        128282&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155609130859375" lon="11.419639587402344">
+        <name>128281</name>
+      </trkpt>
+      <trkpt lat="48.155765533447266" lon="11.4202299118042">
+        <name>128282</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86808</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129078&#xA;      &#xA;      &#xA;        129079&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23218536376953" lon="11.542280197143555">
+        <name>129078</name>
+      </trkpt>
+      <trkpt lat="48.23326873779297" lon="11.541594505310059">
+        <name>129079</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87657</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129921&#xA;      &#xA;      &#xA;        129922&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2041015625" lon="11.39770793914795">
+        <name>129921</name>
+      </trkpt>
+      <trkpt lat="48.2025032043457" lon="11.400165557861328">
+        <name>129922</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87799</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130041&#xA;      &#xA;      &#xA;        130042&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.158077239990234" lon="11.41846752166748">
+        <name>130041</name>
+      </trkpt>
+      <trkpt lat="48.15846633911133" lon="11.41837215423584">
+        <name>130042</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86667</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128937&#xA;      &#xA;      &#xA;        128938&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16828918457031" lon="11.415287971496582">
+        <name>128937</name>
+      </trkpt>
+      <trkpt lat="48.16832733154297" lon="11.415098190307617">
+        <name>128938</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105487</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147038&#xA;      &#xA;      &#xA;        147039&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.09323501586914" lon="11.589033126831055">
+        <name>147038</name>
+      </trkpt>
+      <trkpt lat="48.09632873535156" lon="11.587119102478027">
+        <name>147039</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85960</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128282&#xA;      &#xA;      &#xA;        128283&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155765533447266" lon="11.4202299118042">
+        <name>128282</name>
+      </trkpt>
+      <trkpt lat="48.155521392822266" lon="11.420629501342773">
+        <name>128283</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86809</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129084&#xA;      &#xA;      &#xA;        129083&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23321533203125" lon="11.541280746459961">
+        <name>129084</name>
+      </trkpt>
+      <trkpt lat="48.23203659057617" lon="11.542080879211426">
+        <name>129083</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87658</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129922&#xA;      &#xA;      &#xA;        129923&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2025032043457" lon="11.400165557861328">
+        <name>129922</name>
+      </trkpt>
+      <trkpt lat="48.20044708251953" lon="11.403279304504395">
+        <name>129923</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96856</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138520&#xA;      &#xA;      &#xA;        138522&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25344467163086" lon="11.497037887573242">
+        <name>138520</name>
+      </trkpt>
+      <trkpt lat="48.2540168762207" lon="11.498437881469727">
+        <name>138522</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87800</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130042&#xA;      &#xA;      &#xA;        130043&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15846633911133" lon="11.41837215423584">
+        <name>130042</name>
+      </trkpt>
+      <trkpt lat="48.159603118896484" lon="11.417915344238281">
+        <name>130043</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86668</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128938&#xA;      &#xA;      &#xA;        128939&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16832733154297" lon="11.415098190307617">
+        <name>128938</name>
+      </trkpt>
+      <trkpt lat="48.16895294189453" lon="11.414844512939453">
+        <name>128939</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105488</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147039&#xA;      &#xA;      &#xA;        147040&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.09632873535156" lon="11.587119102478027">
+        <name>147039</name>
+      </trkpt>
+      <trkpt lat="48.0991096496582" lon="11.585604667663574">
+        <name>147040</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85961</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128283&#xA;      &#xA;      &#xA;        128284&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155521392822266" lon="11.420629501342773">
+        <name>128283</name>
+      </trkpt>
+      <trkpt lat="48.1554069519043" lon="11.421238899230957">
+        <name>128284</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86810</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129083&#xA;      &#xA;      &#xA;        129082&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23203659057617" lon="11.542080879211426">
+        <name>129083</name>
+      </trkpt>
+      <trkpt lat="48.230796813964844" lon="11.542594909667969">
+        <name>129082</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87659</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129923&#xA;      &#xA;      &#xA;        129924&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20044708251953" lon="11.403279304504395">
+        <name>129923</name>
+      </trkpt>
+      <trkpt lat="48.19804763793945" lon="11.406907081604004">
+        <name>129924</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87801</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130043&#xA;      &#xA;      &#xA;        130044&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.159603118896484" lon="11.417915344238281">
+        <name>130043</name>
+      </trkpt>
+      <trkpt lat="48.16012191772461" lon="11.42037296295166">
+        <name>130044</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86669</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128939&#xA;      &#xA;      &#xA;        128940&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16895294189453" lon="11.414844512939453">
+        <name>128939</name>
+      </trkpt>
+      <trkpt lat="48.16910171508789" lon="11.414806365966797">
+        <name>128940</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105489</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147040&#xA;      &#xA;      &#xA;        147041&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.0991096496582" lon="11.585604667663574">
+        <name>147040</name>
+      </trkpt>
+      <trkpt lat="48.10231399536133" lon="11.583576202392578">
+        <name>147041</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105206</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146755&#xA;      &#xA;      &#xA;        146756&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13386535644531" lon="11.759300231933594">
+        <name>146755</name>
+      </trkpt>
+      <trkpt lat="48.131019592285156" lon="11.759414672851562">
+        <name>146756</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85962</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128284&#xA;      &#xA;      &#xA;        128285&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1554069519043" lon="11.421238899230957">
+        <name>128284</name>
+      </trkpt>
+      <trkpt lat="48.155391693115234" lon="11.421829223632812">
+        <name>128285</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86811</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129082&#xA;      &#xA;      &#xA;        129081&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.230796813964844" lon="11.542594909667969">
+        <name>129082</name>
+      </trkpt>
+      <trkpt lat="48.22978973388672" lon="11.542709350585938">
+        <name>129081</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87660</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129924&#xA;      &#xA;      &#xA;        129925&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19804763793945" lon="11.406907081604004">
+        <name>129924</name>
+      </trkpt>
+      <trkpt lat="48.19572830200195" lon="11.410449028015137">
+        <name>129925</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105065</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146608&#xA;      &#xA;      &#xA;        146614&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.226741790771484" lon="11.552311897277832">
+        <name>146608</name>
+      </trkpt>
+      <trkpt lat="48.22685623168945" lon="11.558568000793457">
+        <name>146614</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96858</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138522&#xA;      &#xA;      &#xA;        138523&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2540168762207" lon="11.498437881469727">
+        <name>138522</name>
+      </trkpt>
+      <trkpt lat="48.254188537597656" lon="11.499837875366211">
+        <name>138523</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87802</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130044&#xA;      &#xA;      &#xA;        130045&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16012191772461" lon="11.42037296295166">
+        <name>130044</name>
+      </trkpt>
+      <trkpt lat="48.16059112548828" lon="11.420144081115723">
+        <name>130045</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86670</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128940&#xA;      &#xA;      &#xA;        128941&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16910171508789" lon="11.414806365966797">
+        <name>128940</name>
+      </trkpt>
+      <trkpt lat="48.17017364501953" lon="11.415186882019043">
+        <name>128941</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105490</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147041&#xA;      &#xA;      &#xA;        147042&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.10231399536133" lon="11.583576202392578">
+        <name>147041</name>
+      </trkpt>
+      <trkpt lat="48.10460662841797" lon="11.582091331481934">
+        <name>147042</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105207</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146756&#xA;      &#xA;      &#xA;        146757&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.131019592285156" lon="11.759414672851562">
+        <name>146756</name>
+      </trkpt>
+      <trkpt lat="48.12696075439453" lon="11.759300231933594">
+        <name>146757</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85963</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128285&#xA;      &#xA;      &#xA;        128286&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155391693115234" lon="11.421829223632812">
+        <name>128285</name>
+      </trkpt>
+      <trkpt lat="48.155582427978516" lon="11.422438621520996">
+        <name>128286</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86812</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129081&#xA;      &#xA;      &#xA;        129080&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22978973388672" lon="11.542709350585938">
+        <name>129081</name>
+      </trkpt>
+      <trkpt lat="48.22850036621094" lon="11.542451858520508">
+        <name>129080</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87661</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129925&#xA;      &#xA;      &#xA;        129926&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19572830200195" lon="11.410449028015137">
+        <name>129925</name>
+      </trkpt>
+      <trkpt lat="48.19427490234375" lon="11.41264820098877">
+        <name>129926</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105066</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146614&#xA;      &#xA;      &#xA;        146615&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22685623168945" lon="11.558568000793457">
+        <name>146614</name>
+      </trkpt>
+      <trkpt lat="48.226966857910156" lon="11.563253402709961">
+        <name>146615</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87803</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130045&#xA;      &#xA;      &#xA;        130046&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16059112548828" lon="11.420144081115723">
+        <name>130045</name>
+      </trkpt>
+      <trkpt lat="48.16008758544922" lon="11.417743682861328">
+        <name>130046</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86671</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128941&#xA;      &#xA;      &#xA;        128942&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17017364501953" lon="11.415186882019043">
+        <name>128941</name>
+      </trkpt>
+      <trkpt lat="48.171024322509766" lon="11.41575813293457">
+        <name>128942</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105491</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147042&#xA;      &#xA;      &#xA;        147043&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.10460662841797" lon="11.582091331481934">
+        <name>147042</name>
+      </trkpt>
+      <trkpt lat="48.10552215576172" lon="11.581433296203613">
+        <name>147043</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105208</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146757&#xA;      &#xA;      &#xA;        146768&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12696075439453" lon="11.759300231933594">
+        <name>146757</name>
+      </trkpt>
+      <trkpt lat="48.12382888793945" lon="11.758956909179688">
+        <name>146768</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85964</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128286&#xA;      &#xA;      &#xA;        128287&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155582427978516" lon="11.422438621520996">
+        <name>128286</name>
+      </trkpt>
+      <trkpt lat="48.1555061340332" lon="11.422523498535156">
+        <name>128287</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86813</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129080&#xA;      &#xA;      &#xA;        129074&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22850036621094" lon="11.542451858520508">
+        <name>129080</name>
+      </trkpt>
+      <trkpt lat="48.22732925415039" lon="11.541537284851074">
+        <name>129074</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87662</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129926&#xA;      &#xA;      &#xA;        129927&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19427490234375" lon="11.41264820098877">
+        <name>129926</name>
+      </trkpt>
+      <trkpt lat="48.19248580932617" lon="11.41533374786377">
+        <name>129927</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105067</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146615&#xA;      &#xA;      &#xA;        146616&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.226966857910156" lon="11.563253402709961">
+        <name>146615</name>
+      </trkpt>
+      <trkpt lat="48.22706604003906" lon="11.566394805908203">
+        <name>146616</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96860</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138523&#xA;      &#xA;      &#xA;        138526&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.254188537597656" lon="11.499837875366211">
+        <name>138523</name>
+      </trkpt>
+      <trkpt lat="48.253936767578125" lon="11.503922462463379">
+        <name>138526</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87804</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130046&#xA;      &#xA;      &#xA;        130043&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16008758544922" lon="11.417743682861328">
+        <name>130046</name>
+      </trkpt>
+      <trkpt lat="48.159603118896484" lon="11.417915344238281">
+        <name>130043</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86672</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128942&#xA;      &#xA;      &#xA;        128943&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.171024322509766" lon="11.41575813293457">
+        <name>128942</name>
+      </trkpt>
+      <trkpt lat="48.171478271484375" lon="11.416101455688477">
+        <name>128943</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105492</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147043&#xA;      &#xA;      &#xA;        147044&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.10552215576172" lon="11.581433296203613">
+        <name>147043</name>
+      </trkpt>
+      <trkpt lat="48.10664367675781" lon="11.580348014831543">
+        <name>147044</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85965</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128287&#xA;      &#xA;      &#xA;        128288&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1555061340332" lon="11.422523498535156">
+        <name>128287</name>
+      </trkpt>
+      <trkpt lat="48.155555725097656" lon="11.42264175415039">
+        <name>128288</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86814</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129079&#xA;      &#xA;      &#xA;        129085&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23326873779297" lon="11.541594505310059">
+        <name>129079</name>
+      </trkpt>
+      <trkpt lat="48.23569107055664" lon="11.539652824401855">
+        <name>129085</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87663</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129927&#xA;      &#xA;      &#xA;        129928&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19248580932617" lon="11.41533374786377">
+        <name>129927</name>
+      </trkpt>
+      <trkpt lat="48.19073486328125" lon="11.417933464050293">
+        <name>129928</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105068</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146616&#xA;      &#xA;      &#xA;        146617&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22706604003906" lon="11.566394805908203">
+        <name>146616</name>
+      </trkpt>
+      <trkpt lat="48.22727584838867" lon="11.57025146484375">
+        <name>146617</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96861</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138526&#xA;      &#xA;      &#xA;        138528&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.253936767578125" lon="11.503922462463379">
+        <name>138526</name>
+      </trkpt>
+      <trkpt lat="48.25371170043945" lon="11.507694244384766">
+        <name>138528</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87805</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130046&#xA;      &#xA;      &#xA;        130047&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16008758544922" lon="11.417743682861328">
+        <name>130046</name>
+      </trkpt>
+      <trkpt lat="48.1600341796875" lon="11.417057991027832">
+        <name>130047</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86673</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128943&#xA;      &#xA;      &#xA;        128944&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.171478271484375" lon="11.416101455688477">
+        <name>128943</name>
+      </trkpt>
+      <trkpt lat="48.17170715332031" lon="11.41641902923584">
+        <name>128944</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105493</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147044&#xA;      &#xA;      &#xA;        147045&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.10664367675781" lon="11.580348014831543">
+        <name>147044</name>
+      </trkpt>
+      <trkpt lat="48.10773468017578" lon="11.579633712768555">
+        <name>147045</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85966</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128288&#xA;      &#xA;      &#xA;        128289&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155555725097656" lon="11.42264175415039">
+        <name>128288</name>
+      </trkpt>
+      <trkpt lat="48.15562057495117" lon="11.422557830810547">
+        <name>128289</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86815</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129085&#xA;      &#xA;      &#xA;        129086&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23569107055664" lon="11.539652824401855">
+        <name>129085</name>
+      </trkpt>
+      <trkpt lat="48.23826217651367" lon="11.537595748901367">
+        <name>129086</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87664</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129928&#xA;      &#xA;      &#xA;        129929&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19073486328125" lon="11.417933464050293">
+        <name>129928</name>
+      </trkpt>
+      <trkpt lat="48.189117431640625" lon="11.420389175415039">
+        <name>129929</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105069</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146617&#xA;      &#xA;      &#xA;        146618&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22727584838867" lon="11.57025146484375">
+        <name>146617</name>
+      </trkpt>
+      <trkpt lat="48.227638244628906" lon="11.574878692626953">
+        <name>146618</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87806</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130047&#xA;      &#xA;      &#xA;        130048&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1600341796875" lon="11.417057991027832">
+        <name>130047</name>
+      </trkpt>
+      <trkpt lat="48.16006088256836" lon="11.415363311767578">
+        <name>130048</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86674</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128944&#xA;      &#xA;      &#xA;        128945&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17170715332031" lon="11.41641902923584">
+        <name>128944</name>
+      </trkpt>
+      <trkpt lat="48.1717643737793" lon="11.416621208190918">
+        <name>128945</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105494</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147045&#xA;      &#xA;      &#xA;        147046&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.10773468017578" lon="11.579633712768555">
+        <name>147045</name>
+      </trkpt>
+      <trkpt lat="48.10979461669922" lon="11.578605651855469">
+        <name>147046</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105211</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146768&#xA;      &#xA;      &#xA;        146769&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12382888793945" lon="11.758956909179688">
+        <name>146768</name>
+      </trkpt>
+      <trkpt lat="48.120094299316406" lon="11.758414268493652">
+        <name>146769</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85967</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128289&#xA;      &#xA;      &#xA;        128286&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15562057495117" lon="11.422557830810547">
+        <name>128289</name>
+      </trkpt>
+      <trkpt lat="48.155582427978516" lon="11.422438621520996">
+        <name>128286</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86816</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129087&#xA;      &#xA;      &#xA;        129088&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23812484741211" lon="11.537338256835938">
+        <name>129087</name>
+      </trkpt>
+      <trkpt lat="48.23550033569336" lon="11.53945255279541">
+        <name>129088</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87665</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129929&#xA;      &#xA;      &#xA;        129930&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.189117431640625" lon="11.420389175415039">
+        <name>129929</name>
+      </trkpt>
+      <trkpt lat="48.18769073486328" lon="11.422589302062988">
+        <name>129930</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105070</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146618&#xA;      &#xA;      &#xA;        146619&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.227638244628906" lon="11.574878692626953">
+        <name>146618</name>
+      </trkpt>
+      <trkpt lat="48.22801208496094" lon="11.578678131103516">
+        <name>146619</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96863</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138528&#xA;      &#xA;      &#xA;        138533&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25371170043945" lon="11.507694244384766">
+        <name>138528</name>
+      </trkpt>
+      <trkpt lat="48.2534294128418" lon="11.512406349182129">
+        <name>138533</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87807</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130048&#xA;      &#xA;      &#xA;        128270&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16006088256836" lon="11.415363311767578">
+        <name>130048</name>
+      </trkpt>
+      <trkpt lat="48.15998077392578" lon="11.415048599243164">
+        <name>128270</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86675</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128945&#xA;      &#xA;      &#xA;        128946&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1717643737793" lon="11.416621208190918">
+        <name>128945</name>
+      </trkpt>
+      <trkpt lat="48.17185592651367" lon="11.41676139831543">
+        <name>128946</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105495</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147046&#xA;      &#xA;      &#xA;        147047&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.10979461669922" lon="11.578605651855469">
+        <name>147046</name>
+      </trkpt>
+      <trkpt lat="48.11067199707031" lon="11.577862739562988">
+        <name>147047</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86817</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129088&#xA;      &#xA;      &#xA;        129084&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23550033569336" lon="11.53945255279541">
+        <name>129088</name>
+      </trkpt>
+      <trkpt lat="48.23321533203125" lon="11.541280746459961">
+        <name>129084</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87666</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129930&#xA;      &#xA;      &#xA;        129931&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18769073486328" lon="11.422589302062988">
+        <name>129930</name>
+      </trkpt>
+      <trkpt lat="48.18608474731445" lon="11.425017356872559">
+        <name>129931</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105071</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146619&#xA;      &#xA;      &#xA;        146620&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22801208496094" lon="11.578678131103516">
+        <name>146619</name>
+      </trkpt>
+      <trkpt lat="48.22845458984375" lon="11.58316421508789">
+        <name>146620</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87808</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130045&#xA;      &#xA;      &#xA;        129848&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16059112548828" lon="11.420144081115723">
+        <name>130045</name>
+      </trkpt>
+      <trkpt lat="48.16140365600586" lon="11.423238754272461">
+        <name>129848</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86676</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128946&#xA;      &#xA;      &#xA;        128947&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17185592651367" lon="11.41676139831543">
+        <name>128946</name>
+      </trkpt>
+      <trkpt lat="48.171939849853516" lon="11.417180061340332">
+        <name>128947</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105496</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147047&#xA;      &#xA;      &#xA;        147048&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11067199707031" lon="11.577862739562988">
+        <name>147047</name>
+      </trkpt>
+      <trkpt lat="48.11137390136719" lon="11.576720237731934">
+        <name>147048</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86818</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129086&#xA;      &#xA;      &#xA;        129089&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23826217651367" lon="11.537595748901367">
+        <name>129086</name>
+      </trkpt>
+      <trkpt lat="48.24143600463867" lon="11.535510063171387">
+        <name>129089</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87667</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129931&#xA;      &#xA;      &#xA;        129932&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18608474731445" lon="11.425017356872559">
+        <name>129931</name>
+      </trkpt>
+      <trkpt lat="48.18460464477539" lon="11.427245140075684">
+        <name>129932</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105072</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146620&#xA;      &#xA;      &#xA;        146621&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22845458984375" lon="11.58316421508789">
+        <name>146620</name>
+      </trkpt>
+      <trkpt lat="48.22868347167969" lon="11.58687686920166">
+        <name>146621</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96865</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138533&#xA;      &#xA;      &#xA;        138536&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2534294128418" lon="11.512406349182129">
+        <name>138533</name>
+      </trkpt>
+      <trkpt lat="48.25312042236328" lon="11.517091751098633">
+        <name>138536</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87809</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128269&#xA;      &#xA;      &#xA;        130049&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16022491455078" lon="11.414629936218262">
+        <name>128269</name>
+      </trkpt>
+      <trkpt lat="48.15990447998047" lon="11.41465950012207">
+        <name>130049</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86677</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128947&#xA;      &#xA;      &#xA;        128948&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.171939849853516" lon="11.417180061340332">
+        <name>128947</name>
+      </trkpt>
+      <trkpt lat="48.172203063964844" lon="11.417598724365234">
+        <name>128948</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105497</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147048&#xA;      &#xA;      &#xA;        147049&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11137390136719" lon="11.576720237731934">
+        <name>147048</name>
+      </trkpt>
+      <trkpt lat="48.111663818359375" lon="11.574806213378906">
+        <name>147049</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86819</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129087&#xA;      &#xA;      &#xA;        129090&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23812484741211" lon="11.537338256835938">
+        <name>129087</name>
+      </trkpt>
+      <trkpt lat="48.241397857666016" lon="11.535138130187988">
+        <name>129090</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87668</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129932&#xA;      &#xA;      &#xA;        129933&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18460464477539" lon="11.427245140075684">
+        <name>129932</name>
+      </trkpt>
+      <trkpt lat="48.183345794677734" lon="11.429159164428711">
+        <name>129933</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105073</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146621&#xA;      &#xA;      &#xA;        146622&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22868347167969" lon="11.58687686920166">
+        <name>146621</name>
+      </trkpt>
+      <trkpt lat="48.22883605957031" lon="11.589791297912598">
+        <name>146622</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87810</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130049&#xA;      &#xA;      &#xA;        128270&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15990447998047" lon="11.41465950012207">
+        <name>130049</name>
+      </trkpt>
+      <trkpt lat="48.15998077392578" lon="11.415048599243164">
+        <name>128270</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86678</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128948&#xA;      &#xA;      &#xA;        128949&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.172203063964844" lon="11.417598724365234">
+        <name>128948</name>
+      </trkpt>
+      <trkpt lat="48.172969818115234" lon="11.418627738952637">
+        <name>128949</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105498</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147049&#xA;      &#xA;      &#xA;        147050&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.111663818359375" lon="11.574806213378906">
+        <name>147049</name>
+      </trkpt>
+      <trkpt lat="48.111854553222656" lon="11.573321342468262">
+        <name>147050</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86820</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129089&#xA;      &#xA;      &#xA;        129091&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24143600463867" lon="11.535510063171387">
+        <name>129089</name>
+      </trkpt>
+      <trkpt lat="48.244693756103516" lon="11.533967971801758">
+        <name>129091</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87669</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129933&#xA;      &#xA;      &#xA;        129934&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.183345794677734" lon="11.429159164428711">
+        <name>129933</name>
+      </trkpt>
+      <trkpt lat="48.182682037353516" lon="11.430130004882812">
+        <name>129934</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89933</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130070&#xA;      &#xA;      &#xA;        132125&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15591812133789" lon="11.417476654052734">
+        <name>130070</name>
+      </trkpt>
+      <trkpt lat="48.155338287353516" lon="11.417689323425293">
+        <name>132125</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105074</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146622&#xA;      &#xA;      &#xA;        146623&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22883605957031" lon="11.589791297912598">
+        <name>146622</name>
+      </trkpt>
+      <trkpt lat="48.228912353515625" lon="11.593419075012207">
+        <name>146623</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87811</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130049&#xA;      &#xA;      &#xA;        130050&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15990447998047" lon="11.41465950012207">
+        <name>130049</name>
+      </trkpt>
+      <trkpt lat="48.1593132019043" lon="11.414639472961426">
+        <name>130050</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86679</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128949&#xA;      &#xA;      &#xA;        128950&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.172969818115234" lon="11.418627738952637">
+        <name>128949</name>
+      </trkpt>
+      <trkpt lat="48.173851013183594" lon="11.419872283935547">
+        <name>128950</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105499</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147050&#xA;      &#xA;      &#xA;        147051&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.111854553222656" lon="11.573321342468262">
+        <name>147050</name>
+      </trkpt>
+      <trkpt lat="48.111793518066406" lon="11.571435928344727">
+        <name>147051</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86821</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129091&#xA;      &#xA;      &#xA;        129092&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.244693756103516" lon="11.533967971801758">
+        <name>129091</name>
+      </trkpt>
+      <trkpt lat="48.247257232666016" lon="11.533167839050293">
+        <name>129092</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87670</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128965&#xA;      &#xA;      &#xA;        129935&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17868423461914" lon="11.42976188659668">
+        <name>128965</name>
+      </trkpt>
+      <trkpt lat="48.179805755615234" lon="11.430930137634277">
+        <name>129935</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89934</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132125&#xA;      &#xA;      &#xA;        132126&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155338287353516" lon="11.417689323425293">
+        <name>132125</name>
+      </trkpt>
+      <trkpt lat="48.15467834472656" lon="11.418012619018555">
+        <name>132126</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105075</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146623&#xA;      &#xA;      &#xA;        146624&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.228912353515625" lon="11.593419075012207">
+        <name>146623</name>
+      </trkpt>
+      <trkpt lat="48.22888946533203" lon="11.596275329589844">
+        <name>146624</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96868</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138536&#xA;      &#xA;      &#xA;        138537&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25312042236328" lon="11.517091751098633">
+        <name>138536</name>
+      </trkpt>
+      <trkpt lat="48.252838134765625" lon="11.521404266357422">
+        <name>138537</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87812</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130050&#xA;      &#xA;      &#xA;        130051&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1593132019043" lon="11.414639472961426">
+        <name>130050</name>
+      </trkpt>
+      <trkpt lat="48.158939361572266" lon="11.41490650177002">
+        <name>130051</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86680</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128950&#xA;      &#xA;      &#xA;        128951&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.173851013183594" lon="11.419872283935547">
+        <name>128950</name>
+      </trkpt>
+      <trkpt lat="48.174095153808594" lon="11.420430183410645">
+        <name>128951</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105500</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147051&#xA;      &#xA;      &#xA;        147052&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.111793518066406" lon="11.571435928344727">
+        <name>147051</name>
+      </trkpt>
+      <trkpt lat="48.111854553222656" lon="11.570521354675293">
+        <name>147052</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86822</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129094&#xA;      &#xA;      &#xA;        129093&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.247169494628906" lon="11.532854080200195">
+        <name>129094</name>
+      </trkpt>
+      <trkpt lat="48.244537353515625" lon="11.533624649047852">
+        <name>129093</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87671</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129935&#xA;      &#xA;      &#xA;        129936&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.179805755615234" lon="11.430930137634277">
+        <name>129935</name>
+      </trkpt>
+      <trkpt lat="48.1802978515625" lon="11.43144416809082">
+        <name>129936</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89935</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132126&#xA;      &#xA;      &#xA;        132127&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15467834472656" lon="11.418012619018555">
+        <name>132126</name>
+      </trkpt>
+      <trkpt lat="48.1536865234375" lon="11.418755531311035">
+        <name>132127</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105076</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146624&#xA;      &#xA;      &#xA;        146626&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22888946533203" lon="11.596275329589844">
+        <name>146624</name>
+      </trkpt>
+      <trkpt lat="48.22858810424805" lon="11.60107421875">
+        <name>146626</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87813</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128272&#xA;      &#xA;      &#xA;        130053&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15910339355469" lon="11.415334701538086">
+        <name>128272</name>
+      </trkpt>
+      <trkpt lat="48.15884017944336" lon="11.415287017822266">
+        <name>130053</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86681</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128951&#xA;      &#xA;      &#xA;        128952&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.174095153808594" lon="11.420430183410645">
+        <name>128951</name>
+      </trkpt>
+      <trkpt lat="48.17430114746094" lon="11.420811653137207">
+        <name>128952</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105501</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147052&#xA;      &#xA;      &#xA;        147053&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.111854553222656" lon="11.570521354675293">
+        <name>147052</name>
+      </trkpt>
+      <trkpt lat="48.11228942871094" lon="11.568950653076172">
+        <name>147053</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86823</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129093&#xA;      &#xA;      &#xA;        129090&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.244537353515625" lon="11.533624649047852">
+        <name>129093</name>
+      </trkpt>
+      <trkpt lat="48.241397857666016" lon="11.535138130187988">
+        <name>129090</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87672</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129936&#xA;      &#xA;      &#xA;        129937&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1802978515625" lon="11.43144416809082">
+        <name>129936</name>
+      </trkpt>
+      <trkpt lat="48.181915283203125" lon="11.432844161987305">
+        <name>129937</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89936</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132127&#xA;      &#xA;      &#xA;        132128&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1536865234375" lon="11.418755531311035">
+        <name>132127</name>
+      </trkpt>
+      <trkpt lat="48.153141021728516" lon="11.419193267822266">
+        <name>132128</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87814</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130053&#xA;      &#xA;      &#xA;        130052&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15884017944336" lon="11.415287017822266">
+        <name>130053</name>
+      </trkpt>
+      <trkpt lat="48.158329010009766" lon="11.415116310119629">
+        <name>130052</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86682</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128952&#xA;      &#xA;      &#xA;        128953&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17430114746094" lon="11.420811653137207">
+        <name>128952</name>
+      </trkpt>
+      <trkpt lat="48.174461364746094" lon="11.420989036560059">
+        <name>128953</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105502</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147053&#xA;      &#xA;      &#xA;        147054&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11228942871094" lon="11.568950653076172">
+        <name>147053</name>
+      </trkpt>
+      <trkpt lat="48.112693786621094" lon="11.567808151245117">
+        <name>147054</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86824</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129092&#xA;      &#xA;      &#xA;        129095&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.247257232666016" lon="11.533167839050293">
+        <name>129092</name>
+      </trkpt>
+      <trkpt lat="48.25026321411133" lon="11.532824516296387">
+        <name>129095</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87673</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129937&#xA;      &#xA;      &#xA;        128968&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.181915283203125" lon="11.432844161987305">
+        <name>129937</name>
+      </trkpt>
+      <trkpt lat="48.18305206298828" lon="11.433813095092773">
+        <name>128968</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89937</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132128&#xA;      &#xA;      &#xA;        132129&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.153141021728516" lon="11.419193267822266">
+        <name>132128</name>
+      </trkpt>
+      <trkpt lat="48.15254211425781" lon="11.419535636901855">
+        <name>132129</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96871</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138537&#xA;      &#xA;      &#xA;        138538&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.252838134765625" lon="11.521404266357422">
+        <name>138537</name>
+      </trkpt>
+      <trkpt lat="48.252662658691406" lon="11.524460792541504">
+        <name>138538</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87815</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130053&#xA;      &#xA;      &#xA;        130051&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15884017944336" lon="11.415287017822266">
+        <name>130053</name>
+      </trkpt>
+      <trkpt lat="48.158939361572266" lon="11.41490650177002">
+        <name>130051</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86683</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128953&#xA;      &#xA;      &#xA;        128954&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.174461364746094" lon="11.420989036560059">
+        <name>128953</name>
+      </trkpt>
+      <trkpt lat="48.1744499206543" lon="11.421674728393555">
+        <name>128954</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105503</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147054&#xA;      &#xA;      &#xA;        147055&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.112693786621094" lon="11.567808151245117">
+        <name>147054</name>
+      </trkpt>
+      <trkpt lat="48.11292266845703" lon="11.566207885742188">
+        <name>147055</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105220</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146769&#xA;      &#xA;      &#xA;        146770&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.120094299316406" lon="11.758414268493652">
+        <name>146769</name>
+      </trkpt>
+      <trkpt lat="48.11668014526367" lon="11.757728576660156">
+        <name>146770</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86825</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129094&#xA;      &#xA;      &#xA;        129096&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.247169494628906" lon="11.532854080200195">
+        <name>129094</name>
+      </trkpt>
+      <trkpt lat="48.250244140625" lon="11.532453536987305">
+        <name>129096</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87674</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129934&#xA;      &#xA;      &#xA;        129938&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.182682037353516" lon="11.430130004882812">
+        <name>129934</name>
+      </trkpt>
+      <trkpt lat="48.182090759277344" lon="11.43061637878418">
+        <name>129938</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89938</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132129&#xA;      &#xA;      &#xA;        132130&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15254211425781" lon="11.419535636901855">
+        <name>132129</name>
+      </trkpt>
+      <trkpt lat="48.151954650878906" lon="11.419822692871094">
+        <name>132130</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96872</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138538&#xA;      &#xA;      &#xA;        138539&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.252662658691406" lon="11.524460792541504">
+        <name>138538</name>
+      </trkpt>
+      <trkpt lat="48.252628326416016" lon="11.52791690826416">
+        <name>138539</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87816</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130052&#xA;      &#xA;      &#xA;        128274&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.158329010009766" lon="11.415116310119629">
+        <name>130052</name>
+      </trkpt>
+      <trkpt lat="48.15804672241211" lon="11.415238380432129">
+        <name>128274</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86684</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128954&#xA;      &#xA;      &#xA;        128955&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1744499206543" lon="11.421674728393555">
+        <name>128954</name>
+      </trkpt>
+      <trkpt lat="48.17435073852539" lon="11.422626495361328">
+        <name>128955</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105504</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147055&#xA;      &#xA;      &#xA;        147056&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11292266845703" lon="11.566207885742188">
+        <name>147055</name>
+      </trkpt>
+      <trkpt lat="48.11301803588867" lon="11.564323425292969">
+        <name>147056</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105221</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146770&#xA;      &#xA;      &#xA;        146771&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11668014526367" lon="11.757728576660156">
+        <name>146770</name>
+      </trkpt>
+      <trkpt lat="48.11343765258789" lon="11.7568998336792">
+        <name>146771</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86826</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129095&#xA;      &#xA;      &#xA;        129097&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25026321411133" lon="11.532824516296387">
+        <name>129095</name>
+      </trkpt>
+      <trkpt lat="48.25324630737305" lon="11.532938957214355">
+        <name>129097</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87675</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129938&#xA;      &#xA;      &#xA;        129939&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.182090759277344" lon="11.43061637878418">
+        <name>129938</name>
+      </trkpt>
+      <trkpt lat="48.18155288696289" lon="11.43061637878418">
+        <name>129939</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89939</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132130&#xA;      &#xA;      &#xA;        132131&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.151954650878906" lon="11.419822692871094">
+        <name>132130</name>
+      </trkpt>
+      <trkpt lat="48.15016174316406" lon="11.42050838470459">
+        <name>132131</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96873</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138539&#xA;      &#xA;      &#xA;        138540&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.252628326416016" lon="11.52791690826416">
+        <name>138539</name>
+      </trkpt>
+      <trkpt lat="48.25257110595703" lon="11.529831886291504">
+        <name>138540</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87817</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130052&#xA;      &#xA;      &#xA;        128914&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.158329010009766" lon="11.415116310119629">
+        <name>130052</name>
+      </trkpt>
+      <trkpt lat="48.15797424316406" lon="11.413873672485352">
+        <name>128914</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86685</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128955&#xA;      &#xA;      &#xA;        128956&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17435073852539" lon="11.422626495361328">
+        <name>128955</name>
+      </trkpt>
+      <trkpt lat="48.17431640625" lon="11.423211097717285">
+        <name>128956</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105505</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147056&#xA;      &#xA;      &#xA;        147057&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11301803588867" lon="11.564323425292969">
+        <name>147056</name>
+      </trkpt>
+      <trkpt lat="48.11289978027344" lon="11.562723159790039">
+        <name>147057</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105222</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146771&#xA;      &#xA;      &#xA;        146772&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11343765258789" lon="11.7568998336792">
+        <name>146771</name>
+      </trkpt>
+      <trkpt lat="48.11088180541992" lon="11.756157875061035">
+        <name>146772</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87676</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129939&#xA;      &#xA;      &#xA;        129940&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18155288696289" lon="11.43061637878418">
+        <name>129939</name>
+      </trkpt>
+      <trkpt lat="48.181175231933594" lon="11.430559158325195">
+        <name>129940</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89940</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132131&#xA;      &#xA;      &#xA;        132132&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15016174316406" lon="11.42050838470459">
+        <name>132131</name>
+      </trkpt>
+      <trkpt lat="48.14902114868164" lon="11.420907974243164">
+        <name>132132</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87818</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128268&#xA;      &#xA;      &#xA;        130054&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16078186035156" lon="11.414229393005371">
+        <name>128268</name>
+      </trkpt>
+      <trkpt lat="48.16055679321289" lon="11.413077354431152">
+        <name>130054</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86686</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128956&#xA;      &#xA;      &#xA;        128957&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17431640625" lon="11.423211097717285">
+        <name>128956</name>
+      </trkpt>
+      <trkpt lat="48.174217224121094" lon="11.424162864685059">
+        <name>128957</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96874</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138540&#xA;      &#xA;      &#xA;        138541&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25257110595703" lon="11.529831886291504">
+        <name>138540</name>
+      </trkpt>
+      <trkpt lat="48.252437591552734" lon="11.532059669494629">
+        <name>138541</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105506</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147057&#xA;      &#xA;      &#xA;        147058&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11289978027344" lon="11.562723159790039">
+        <name>147057</name>
+      </trkpt>
+      <trkpt lat="48.11261749267578" lon="11.560724258422852">
+        <name>147058</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105223</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146772&#xA;      &#xA;      &#xA;        146773&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11088180541992" lon="11.756157875061035">
+        <name>146772</name>
+      </trkpt>
+      <trkpt lat="48.107391357421875" lon="11.754786491394043">
+        <name>146773</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86828</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129099&#xA;      &#xA;      &#xA;        129100&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.256141662597656" lon="11.5331392288208">
+        <name>129099</name>
+      </trkpt>
+      <trkpt lat="48.25318908691406" lon="11.532567977905273">
+        <name>129100</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87677</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129940&#xA;      &#xA;      &#xA;        129941&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.181175231933594" lon="11.430559158325195">
+        <name>129940</name>
+      </trkpt>
+      <trkpt lat="48.1807975769043" lon="11.430644035339355">
+        <name>129941</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89941</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132132&#xA;      &#xA;      &#xA;        132133&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14902114868164" lon="11.420907974243164">
+        <name>132132</name>
+      </trkpt>
+      <trkpt lat="48.14790725708008" lon="11.421308517456055">
+        <name>132133</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87819</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130054&#xA;      &#xA;      &#xA;        130055&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16055679321289" lon="11.413077354431152">
+        <name>130054</name>
+      </trkpt>
+      <trkpt lat="48.16055679321289" lon="11.412753105163574">
+        <name>130055</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86687</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128957&#xA;      &#xA;      &#xA;        128958&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.174217224121094" lon="11.424162864685059">
+        <name>128957</name>
+      </trkpt>
+      <trkpt lat="48.17410659790039" lon="11.425445556640625">
+        <name>128958</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96875</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138541&#xA;      &#xA;      &#xA;        138542&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.252437591552734" lon="11.532059669494629">
+        <name>138541</name>
+      </trkpt>
+      <trkpt lat="48.252323150634766" lon="11.533859252929688">
+        <name>138542</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105507</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147058&#xA;      &#xA;      &#xA;        147059&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11261749267578" lon="11.560724258422852">
+        <name>147058</name>
+      </trkpt>
+      <trkpt lat="48.11234664916992" lon="11.558324813842773">
+        <name>147059</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105224</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146773&#xA;      &#xA;      &#xA;        146774&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.107391357421875" lon="11.754786491394043">
+        <name>146773</name>
+      </trkpt>
+      <trkpt lat="48.10439682006836" lon="11.753558158874512">
+        <name>146774</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86829</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129100&#xA;      &#xA;      &#xA;        129096&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25318908691406" lon="11.532567977905273">
+        <name>129100</name>
+      </trkpt>
+      <trkpt lat="48.250244140625" lon="11.532453536987305">
+        <name>129096</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87678</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129941&#xA;      &#xA;      &#xA;        129942&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1807975769043" lon="11.430644035339355">
+        <name>129941</name>
+      </trkpt>
+      <trkpt lat="48.1802978515625" lon="11.430959701538086">
+        <name>129942</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89942</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132133&#xA;      &#xA;      &#xA;        132134&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14790725708008" lon="11.421308517456055">
+        <name>132133</name>
+      </trkpt>
+      <trkpt lat="48.14714050292969" lon="11.421631813049316">
+        <name>132134</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87820</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130055&#xA;      &#xA;      &#xA;        130056&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16055679321289" lon="11.412753105163574">
+        <name>130055</name>
+      </trkpt>
+      <trkpt lat="48.1593132019043" lon="11.413077354431152">
+        <name>130056</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86688</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128958&#xA;      &#xA;      &#xA;        128959&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17410659790039" lon="11.425445556640625">
+        <name>128958</name>
+      </trkpt>
+      <trkpt lat="48.17397689819336" lon="11.426778793334961">
+        <name>128959</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96876</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138542&#xA;      &#xA;      &#xA;        138543&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.252323150634766" lon="11.533859252929688">
+        <name>138542</name>
+      </trkpt>
+      <trkpt lat="48.25226593017578" lon="11.534402847290039">
+        <name>138543</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105508</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147059&#xA;      &#xA;      &#xA;        147060&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11234664916992" lon="11.558324813842773">
+        <name>147059</name>
+      </trkpt>
+      <trkpt lat="48.11223602294922" lon="11.55681037902832">
+        <name>147060</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105225</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146774&#xA;      &#xA;      &#xA;        146775&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.10439682006836" lon="11.753558158874512">
+        <name>146774</name>
+      </trkpt>
+      <trkpt lat="48.10102081298828" lon="11.75184440612793">
+        <name>146775</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87679</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129942&#xA;      &#xA;      &#xA;        129935&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1802978515625" lon="11.430959701538086">
+        <name>129942</name>
+      </trkpt>
+      <trkpt lat="48.179805755615234" lon="11.430930137634277">
+        <name>129935</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89943</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132134&#xA;      &#xA;      &#xA;        132135&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14714050292969" lon="11.421631813049316">
+        <name>132134</name>
+      </trkpt>
+      <trkpt lat="48.146888732910156" lon="11.421669960021973">
+        <name>132135</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105084</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146626&#xA;      &#xA;      &#xA;        146633&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22858810424805" lon="11.60107421875">
+        <name>146626</name>
+      </trkpt>
+      <trkpt lat="48.228111267089844" lon="11.605473518371582">
+        <name>146633</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87821</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130056&#xA;      &#xA;      &#xA;        130050&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1593132019043" lon="11.413077354431152">
+        <name>130056</name>
+      </trkpt>
+      <trkpt lat="48.1593132019043" lon="11.414639472961426">
+        <name>130050</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96877</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138543&#xA;      &#xA;      &#xA;        138544&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25226593017578" lon="11.534402847290039">
+        <name>138543</name>
+      </trkpt>
+      <trkpt lat="48.25270462036133" lon="11.534516334533691">
+        <name>138544</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105509</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147060&#xA;      &#xA;      &#xA;        147061&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11223602294922" lon="11.55681037902832">
+        <name>147060</name>
+      </trkpt>
+      <trkpt lat="48.11228942871094" lon="11.554667472839355">
+        <name>147061</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105226</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146775&#xA;      &#xA;      &#xA;        146776&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.10102081298828" lon="11.75184440612793">
+        <name>146775</name>
+      </trkpt>
+      <trkpt lat="48.097740173339844" lon="11.750015258789062">
+        <name>146776</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86831</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129101&#xA;      &#xA;      &#xA;        129102&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.259613037109375" lon="11.534852981567383">
+        <name>129101</name>
+      </trkpt>
+      <trkpt lat="48.26298141479492" lon="11.536539077758789">
+        <name>129102</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87680</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128964&#xA;      &#xA;      &#xA;        129943&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1785774230957" lon="11.43030834197998">
+        <name>128964</name>
+      </trkpt>
+      <trkpt lat="48.180545806884766" lon="11.432272911071777">
+        <name>129943</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89944</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132135&#xA;      &#xA;      &#xA;        132136&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.146888732910156" lon="11.421669960021973">
+        <name>132135</name>
+      </trkpt>
+      <trkpt lat="48.146366119384766" lon="11.421955108642578">
+        <name>132136</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105085</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146633&#xA;      &#xA;      &#xA;        146634&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.228111267089844" lon="11.605473518371582">
+        <name>146633</name>
+      </trkpt>
+      <trkpt lat="48.227447509765625" lon="11.609843254089355">
+        <name>146634</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87822</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130056&#xA;      &#xA;      &#xA;        130057&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1593132019043" lon="11.413077354431152">
+        <name>130056</name>
+      </trkpt>
+      <trkpt lat="48.158321380615234" lon="11.413191795349121">
+        <name>130057</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96878</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138544&#xA;      &#xA;      &#xA;        138545&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25270462036133" lon="11.534516334533691">
+        <name>138544</name>
+      </trkpt>
+      <trkpt lat="48.253047943115234" lon="11.534402847290039">
+        <name>138545</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105510</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147061&#xA;      &#xA;      &#xA;        147062&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11228942871094" lon="11.554667472839355">
+        <name>147061</name>
+      </trkpt>
+      <trkpt lat="48.1119499206543" lon="11.545069694519043">
+        <name>147062</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105227</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146776&#xA;      &#xA;      &#xA;        146777&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.097740173339844" lon="11.750015258789062">
+        <name>146776</name>
+      </trkpt>
+      <trkpt lat="48.09516143798828" lon="11.748444557189941">
+        <name>146777</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86832</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129103&#xA;      &#xA;      &#xA;        129104&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.263057708740234" lon="11.53628158569336">
+        <name>129103</name>
+      </trkpt>
+      <trkpt lat="48.2596321105957" lon="11.534453392028809">
+        <name>129104</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87681</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129943&#xA;      &#xA;      &#xA;        129944&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.180545806884766" lon="11.432272911071777">
+        <name>129943</name>
+      </trkpt>
+      <trkpt lat="48.181480407714844" lon="11.43312931060791">
+        <name>129944</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89945</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132136&#xA;      &#xA;      &#xA;        132137&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.146366119384766" lon="11.421955108642578">
+        <name>132136</name>
+      </trkpt>
+      <trkpt lat="48.14573287963867" lon="11.422355651855469">
+        <name>132137</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105086</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146634&#xA;      &#xA;      &#xA;        146635&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.227447509765625" lon="11.609843254089355">
+        <name>146634</name>
+      </trkpt>
+      <trkpt lat="48.22670364379883" lon="11.613443374633789">
+        <name>146635</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87823</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130057&#xA;      &#xA;      &#xA;        130059&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.158321380615234" lon="11.413191795349121">
+        <name>130057</name>
+      </trkpt>
+      <trkpt lat="48.15803909301758" lon="11.41309642791748">
+        <name>130059</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86691</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128957&#xA;      &#xA;      &#xA;        128962&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.174217224121094" lon="11.424162864685059">
+        <name>128957</name>
+      </trkpt>
+      <trkpt lat="48.1751594543457" lon="11.425369262695312">
+        <name>128962</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96879</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138545&#xA;      &#xA;      &#xA;        138546&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.253047943115234" lon="11.534402847290039">
+        <name>138545</name>
+      </trkpt>
+      <trkpt lat="48.2534065246582" lon="11.53363037109375">
+        <name>138546</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105511</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147062&#xA;      &#xA;      &#xA;        147063&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1119499206543" lon="11.545069694519043">
+        <name>147062</name>
+      </trkpt>
+      <trkpt lat="48.11146926879883" lon="11.5432710647583">
+        <name>147063</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105228</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146777&#xA;      &#xA;      &#xA;        146778&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.09516143798828" lon="11.748444557189941">
+        <name>146777</name>
+      </trkpt>
+      <trkpt lat="48.09287643432617" lon="11.746931076049805">
+        <name>146778</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86833</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129104&#xA;      &#xA;      &#xA;        129099&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2596321105957" lon="11.534453392028809">
+        <name>129104</name>
+      </trkpt>
+      <trkpt lat="48.256141662597656" lon="11.5331392288208">
+        <name>129099</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87682</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129944&#xA;      &#xA;      &#xA;        128969&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.181480407714844" lon="11.43312931060791">
+        <name>129944</name>
+      </trkpt>
+      <trkpt lat="48.18302536010742" lon="11.434365272521973">
+        <name>128969</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89946</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132137&#xA;      &#xA;      &#xA;        132138&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14573287963867" lon="11.422355651855469">
+        <name>132137</name>
+      </trkpt>
+      <trkpt lat="48.14500045776367" lon="11.422831535339355">
+        <name>132138</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87824</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130059&#xA;      &#xA;      &#xA;        130058&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15803909301758" lon="11.41309642791748">
+        <name>130059</name>
+      </trkpt>
+      <trkpt lat="48.15815353393555" lon="11.413496017456055">
+        <name>130058</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86692</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128962&#xA;      &#xA;      &#xA;        128963&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1751594543457" lon="11.425369262695312">
+        <name>128962</name>
+      </trkpt>
+      <trkpt lat="48.176368713378906" lon="11.427108764648438">
+        <name>128963</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96880</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129097&#xA;      &#xA;      &#xA;        138548&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25324630737305" lon="11.532938957214355">
+        <name>129097</name>
+      </trkpt>
+      <trkpt lat="48.25407028198242" lon="11.533059120178223">
+        <name>138548</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105512</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147063&#xA;      &#xA;      &#xA;        147064&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11146926879883" lon="11.5432710647583">
+        <name>147063</name>
+      </trkpt>
+      <trkpt lat="48.111148834228516" lon="11.542670249938965">
+        <name>147064</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86834</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129102&#xA;      &#xA;      &#xA;        129105&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26298141479492" lon="11.536539077758789">
+        <name>129102</name>
+      </trkpt>
+      <trkpt lat="48.26625061035156" lon="11.538652420043945">
+        <name>129105</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87683</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129944&#xA;      &#xA;      &#xA;        129954&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.181480407714844" lon="11.43312931060791">
+        <name>129944</name>
+      </trkpt>
+      <trkpt lat="48.181819915771484" lon="11.433615684509277">
+        <name>129954</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89947</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132138&#xA;      &#xA;      &#xA;        132139&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14500045776367" lon="11.422831535339355">
+        <name>132138</name>
+      </trkpt>
+      <trkpt lat="48.14375305175781" lon="11.423383712768555">
+        <name>132139</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87825</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130058&#xA;      &#xA;      &#xA;        130057&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15815353393555" lon="11.413496017456055">
+        <name>130058</name>
+      </trkpt>
+      <trkpt lat="48.158321380615234" lon="11.413191795349121">
+        <name>130057</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86693</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128963&#xA;      &#xA;      &#xA;        128965&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.176368713378906" lon="11.427108764648438">
+        <name>128963</name>
+      </trkpt>
+      <trkpt lat="48.17868423461914" lon="11.42976188659668">
+        <name>128965</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96881</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138549&#xA;      &#xA;      &#xA;        138547&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25407028198242" lon="11.533059120178223">
+        <name>138548</name>
+      </trkpt>
+      <trkpt lat="48.25620651245117" lon="11.53354549407959">
+        <name>138547</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105513</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147064&#xA;      &#xA;      &#xA;        147065&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.111148834228516" lon="11.542670249938965">
+        <name>147064</name>
+      </trkpt>
+      <trkpt lat="48.11083984375" lon="11.541899681091309">
+        <name>147065</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86835</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129105&#xA;      &#xA;      &#xA;        129106&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26625061035156" lon="11.538652420043945">
+        <name>129105</name>
+      </trkpt>
+      <trkpt lat="48.26946258544922" lon="11.540938377380371">
+        <name>129106</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87684</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129954&#xA;      &#xA;      &#xA;        129953&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.181819915771484" lon="11.433615684509277">
+        <name>129954</name>
+      </trkpt>
+      <trkpt lat="48.181785583496094" lon="11.434329986572266">
+        <name>129953</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89948</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132137&#xA;      &#xA;      &#xA;        132153&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14573287963867" lon="11.422355651855469">
+        <name>132137</name>
+      </trkpt>
+      <trkpt lat="48.14543151855469" lon="11.421003341674805">
+        <name>132153</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87826</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130058&#xA;      &#xA;      &#xA;        128914&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15815353393555" lon="11.413496017456055">
+        <name>130058</name>
+      </trkpt>
+      <trkpt lat="48.15797424316406" lon="11.413873672485352">
+        <name>128914</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86694</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128961&#xA;      &#xA;      &#xA;        128964&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17674255371094" lon="11.428302764892578">
+        <name>128961</name>
+      </trkpt>
+      <trkpt lat="48.1785774230957" lon="11.43030834197998">
+        <name>128964</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87543</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128959&#xA;      &#xA;      &#xA;        129814&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17397689819336" lon="11.426778793334961">
+        <name>128959</name>
+      </trkpt>
+      <trkpt lat="48.173858642578125" lon="11.428360939025879">
+        <name>129814</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96882</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138547&#xA;      &#xA;      &#xA;        129101&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25620651245117" lon="11.53354549407959">
+        <name>138547</name>
+      </trkpt>
+      <trkpt lat="48.259613037109375" lon="11.534852981567383">
+        <name>129101</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105514</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147065&#xA;      &#xA;      &#xA;        147066&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11083984375" lon="11.541899681091309">
+        <name>147065</name>
+      </trkpt>
+      <trkpt lat="48.11063003540039" lon="11.540756225585938">
+        <name>147066</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86836</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129107&#xA;      &#xA;      &#xA;        129108&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26957702636719" lon="11.540679931640625">
+        <name>129107</name>
+      </trkpt>
+      <trkpt lat="48.26639938354492" lon="11.538366317749023">
+        <name>129108</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87685</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129953&#xA;      &#xA;      &#xA;        129952&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.181785583496094" lon="11.434329986572266">
+        <name>129953</name>
+      </trkpt>
+      <trkpt lat="48.18134689331055" lon="11.434615135192871">
+        <name>129952</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89949</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132153&#xA;      &#xA;      &#xA;        132152&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14543151855469" lon="11.421003341674805">
+        <name>132153</name>
+      </trkpt>
+      <trkpt lat="48.14508819580078" lon="11.420185089111328">
+        <name>132152</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87827</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128277&#xA;      &#xA;      &#xA;        130071&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15625" lon="11.41647720336914">
+        <name>128277</name>
+      </trkpt>
+      <trkpt lat="48.15609359741211" lon="11.416790962219238">
+        <name>130071</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87544</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129814&#xA;      &#xA;      &#xA;        129815&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.173858642578125" lon="11.428360939025879">
+        <name>129814</name>
+      </trkpt>
+      <trkpt lat="48.173858642578125" lon="11.429275512695312">
+        <name>129815</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96883</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138549&#xA;      &#xA;      &#xA;        138550&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25407028198242" lon="11.533059120178223">
+        <name>138548</name>
+      </trkpt>
+      <trkpt lat="48.25366973876953" lon="11.533230781555176">
+        <name>138550</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105515</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147066&#xA;      &#xA;      &#xA;        147067&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11063003540039" lon="11.540756225585938">
+        <name>147066</name>
+      </trkpt>
+      <trkpt lat="48.11061096191406" lon="11.53869915008545">
+        <name>147067</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86837</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129108&#xA;      &#xA;      &#xA;        129103&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26639938354492" lon="11.538366317749023">
+        <name>129108</name>
+      </trkpt>
+      <trkpt lat="48.263057708740234" lon="11.53628158569336">
+        <name>129103</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87686</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129952&#xA;      &#xA;      &#xA;        129951&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18134689331055" lon="11.434615135192871">
+        <name>129952</name>
+      </trkpt>
+      <trkpt lat="48.18092727661133" lon="11.434215545654297">
+        <name>129951</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89950</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132152&#xA;      &#xA;      &#xA;        132151&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14508819580078" lon="11.420185089111328">
+        <name>132152</name>
+      </trkpt>
+      <trkpt lat="48.14470672607422" lon="11.419593811035156">
+        <name>132151</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87828</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130071&#xA;      &#xA;      &#xA;        130069&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15609359741211" lon="11.416790962219238">
+        <name>130071</name>
+      </trkpt>
+      <trkpt lat="48.15608596801758" lon="11.416333198547363">
+        <name>130069</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87545</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129815&#xA;      &#xA;      &#xA;        129816&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.173858642578125" lon="11.429275512695312">
+        <name>129815</name>
+      </trkpt>
+      <trkpt lat="48.173858642578125" lon="11.4298095703125">
+        <name>129816</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96884</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138550&#xA;      &#xA;      &#xA;        138546&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25366973876953" lon="11.533230781555176">
+        <name>138550</name>
+      </trkpt>
+      <trkpt lat="48.2534065246582" lon="11.53363037109375">
+        <name>138546</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105516</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147067&#xA;      &#xA;      &#xA;        147068&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11061096191406" lon="11.53869915008545">
+        <name>147067</name>
+      </trkpt>
+      <trkpt lat="48.110595703125" lon="11.5352144241333">
+        <name>147068</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86838</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129106&#xA;      &#xA;      &#xA;        129109&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26946258544922" lon="11.540938377380371">
+        <name>129106</name>
+      </trkpt>
+      <trkpt lat="48.27292251586914" lon="11.543965339660645">
+        <name>129109</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87687</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129951&#xA;      &#xA;      &#xA;        129950&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18092727661133" lon="11.434215545654297">
+        <name>129951</name>
+      </trkpt>
+      <trkpt lat="48.18100357055664" lon="11.433415412902832">
+        <name>129950</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89951</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132151&#xA;      &#xA;      &#xA;        132150&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14470672607422" lon="11.419593811035156">
+        <name>132151</name>
+      </trkpt>
+      <trkpt lat="48.14417266845703" lon="11.418928146362305">
+        <name>132150</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87829</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130069&#xA;      &#xA;      &#xA;        128277&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15608596801758" lon="11.416333198547363">
+        <name>130069</name>
+      </trkpt>
+      <trkpt lat="48.15625" lon="11.41647720336914">
+        <name>128277</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87546</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129816&#xA;      &#xA;      &#xA;        129817&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.173858642578125" lon="11.4298095703125">
+        <name>129816</name>
+      </trkpt>
+      <trkpt lat="48.17356491088867" lon="11.42984676361084">
+        <name>129817</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105517</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147068&#xA;      &#xA;      &#xA;        147069&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.110595703125" lon="11.5352144241333">
+        <name>147068</name>
+      </trkpt>
+      <trkpt lat="48.110538482666016" lon="11.533586502075195">
+        <name>147069</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89952</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132150&#xA;      &#xA;      &#xA;        132149&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14417266845703" lon="11.418928146362305">
+        <name>132150</name>
+      </trkpt>
+      <trkpt lat="48.143917083740234" lon="11.418279647827148">
+        <name>132149</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105093</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146635&#xA;      &#xA;      &#xA;        146642&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22670364379883" lon="11.613443374633789">
+        <name>146635</name>
+      </trkpt>
+      <trkpt lat="48.22565841674805" lon="11.617555618286133">
+        <name>146642</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87830</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130071&#xA;      &#xA;      &#xA;        130070&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15609359741211" lon="11.416790962219238">
+        <name>130071</name>
+      </trkpt>
+      <trkpt lat="48.15591812133789" lon="11.417476654052734">
+        <name>130070</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87547</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129817&#xA;      &#xA;      &#xA;        129818&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17356491088867" lon="11.42984676361084">
+        <name>129817</name>
+      </trkpt>
+      <trkpt lat="48.173336029052734" lon="11.430018424987793">
+        <name>129818</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105518</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147069&#xA;      &#xA;      &#xA;        147070&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.110538482666016" lon="11.533586502075195">
+        <name>147069</name>
+      </trkpt>
+      <trkpt lat="48.110382080078125" lon="11.531702041625977">
+        <name>147070</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89953</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132149&#xA;      &#xA;      &#xA;        132148&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.143917083740234" lon="11.418279647827148">
+        <name>132149</name>
+      </trkpt>
+      <trkpt lat="48.14376449584961" lon="11.41757583618164">
+        <name>132148</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105094</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146642&#xA;      &#xA;      &#xA;        146643&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22565841674805" lon="11.617555618286133">
+        <name>146642</name>
+      </trkpt>
+      <trkpt lat="48.224327087402344" lon="11.621726989746094">
+        <name>146643</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87831</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130070&#xA;      &#xA;      &#xA;        128279&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15591812133789" lon="11.417476654052734">
+        <name>130070</name>
+      </trkpt>
+      <trkpt lat="48.1557731628418" lon="11.418363571166992">
+        <name>128279</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86699</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128968&#xA;      &#xA;      &#xA;        128970&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18305206298828" lon="11.433813095092773">
+        <name>128968</name>
+      </trkpt>
+      <trkpt lat="48.183956146240234" lon="11.43463134765625">
+        <name>128970</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87548</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129818&#xA;      &#xA;      &#xA;        129819&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.173336029052734" lon="11.430018424987793">
+        <name>129818</name>
+      </trkpt>
+      <trkpt lat="48.17258834838867" lon="11.43079948425293">
+        <name>129819</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105519</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147070&#xA;      &#xA;      &#xA;        147071&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.110382080078125" lon="11.531702041625977">
+        <name>147070</name>
+      </trkpt>
+      <trkpt lat="48.11006546020508" lon="11.529173851013184">
+        <name>147071</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86841</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129112&#xA;      &#xA;      &#xA;        129107&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2730712890625" lon="11.543594360351562">
+        <name>129112</name>
+      </trkpt>
+      <trkpt lat="48.26957702636719" lon="11.540679931640625">
+        <name>129107</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87690</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129948&#xA;      &#xA;      &#xA;        129947&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18239212036133" lon="11.431615829467773">
+        <name>129948</name>
+      </trkpt>
+      <trkpt lat="48.18279266357422" lon="11.431987762451172">
+        <name>129947</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89954</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132148&#xA;      &#xA;      &#xA;        132143&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14376449584961" lon="11.41757583618164">
+        <name>132148</name>
+      </trkpt>
+      <trkpt lat="48.14329528808594" lon="11.417670249938965">
+        <name>132143</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105095</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146643&#xA;      &#xA;      &#xA;        146644&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.224327087402344" lon="11.621726989746094">
+        <name>146643</name>
+      </trkpt>
+      <trkpt lat="48.22251510620117" lon="11.626355171203613">
+        <name>146644</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87832</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130069&#xA;      &#xA;      &#xA;        130068&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15608596801758" lon="11.416333198547363">
+        <name>130069</name>
+      </trkpt>
+      <trkpt lat="48.1559944152832" lon="11.415895462036133">
+        <name>130068</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86700</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128969&#xA;      &#xA;      &#xA;        128971&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18302536010742" lon="11.434365272521973">
+        <name>128969</name>
+      </trkpt>
+      <trkpt lat="48.184043884277344" lon="11.435145378112793">
+        <name>128971</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87549</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129819&#xA;      &#xA;      &#xA;        129820&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17258834838867" lon="11.43079948425293">
+        <name>129819</name>
+      </trkpt>
+      <trkpt lat="48.171966552734375" lon="11.431618690490723">
+        <name>129820</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105520</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147071&#xA;      &#xA;      &#xA;        147072&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11006546020508" lon="11.529173851013184">
+        <name>147071</name>
+      </trkpt>
+      <trkpt lat="48.109954833984375" lon="11.527202606201172">
+        <name>147072</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87691</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129947&#xA;      &#xA;      &#xA;        129946&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18279266357422" lon="11.431987762451172">
+        <name>129947</name>
+      </trkpt>
+      <trkpt lat="48.18275451660156" lon="11.43270206451416">
+        <name>129946</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89955</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132143&#xA;      &#xA;      &#xA;        132142&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14329528808594" lon="11.417670249938965">
+        <name>132143</name>
+      </trkpt>
+      <trkpt lat="48.14206314086914" lon="11.417994499206543">
+        <name>132142</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87833</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130068&#xA;      &#xA;      &#xA;        130067&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1559944152832" lon="11.415895462036133">
+        <name>130068</name>
+      </trkpt>
+      <trkpt lat="48.15609359741211" lon="11.41463851928711">
+        <name>130067</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86701</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128970&#xA;      &#xA;      &#xA;        128972&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.183956146240234" lon="11.43463134765625">
+        <name>128970</name>
+      </trkpt>
+      <trkpt lat="48.18587112426758" lon="11.435945510864258">
+        <name>128972</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87550</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129820&#xA;      &#xA;      &#xA;        129821&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.171966552734375" lon="11.431618690490723">
+        <name>129820</name>
+      </trkpt>
+      <trkpt lat="48.17143630981445" lon="11.43259048461914">
+        <name>129821</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105521</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147072&#xA;      &#xA;      &#xA;        147073&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.109954833984375" lon="11.527202606201172">
+        <name>147072</name>
+      </trkpt>
+      <trkpt lat="48.109981536865234" lon="11.520133018493652">
+        <name>147073</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87692</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129946&#xA;      &#xA;      &#xA;        129945&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18275451660156" lon="11.43270206451416">
+        <name>129946</name>
+      </trkpt>
+      <trkpt lat="48.182373046875" lon="11.433072090148926">
+        <name>129945</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89956</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132142&#xA;      &#xA;      &#xA;        132141&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14206314086914" lon="11.417994499206543">
+        <name>132142</name>
+      </trkpt>
+      <trkpt lat="48.1424674987793" lon="11.420888900756836">
+        <name>132141</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87834</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130067&#xA;      &#xA;      &#xA;        130066&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15609359741211" lon="11.41463851928711">
+        <name>130067</name>
+      </trkpt>
+      <trkpt lat="48.15623474121094" lon="11.413535118103027">
+        <name>130066</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86702</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128971&#xA;      &#xA;      &#xA;        128973&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.184043884277344" lon="11.435145378112793">
+        <name>128971</name>
+      </trkpt>
+      <trkpt lat="48.185516357421875" lon="11.436097145080566">
+        <name>128973</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87551</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129821&#xA;      &#xA;      &#xA;        129822&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17143630981445" lon="11.43259048461914">
+        <name>129821</name>
+      </trkpt>
+      <trkpt lat="48.17089080810547" lon="11.433656692504883">
+        <name>129822</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105522</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147073&#xA;      &#xA;      &#xA;        147074&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.109981536865234" lon="11.520133018493652">
+        <name>147073</name>
+      </trkpt>
+      <trkpt lat="48.11006546020508" lon="11.519404411315918">
+        <name>147074</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87693</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129945&#xA;      &#xA;      &#xA;        129937&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.182373046875" lon="11.433072090148926">
+        <name>129945</name>
+      </trkpt>
+      <trkpt lat="48.181915283203125" lon="11.432844161987305">
+        <name>129937</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89957</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132141&#xA;      &#xA;      &#xA;        132140&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1424674987793" lon="11.420888900756836">
+        <name>132141</name>
+      </trkpt>
+      <trkpt lat="48.14286422729492" lon="11.423746109008789">
+        <name>132140</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86703</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128972&#xA;      &#xA;      &#xA;        128974&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18587112426758" lon="11.435945510864258">
+        <name>128972</name>
+      </trkpt>
+      <trkpt lat="48.18747329711914" lon="11.436745643615723">
+        <name>128974</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87552</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129822&#xA;      &#xA;      &#xA;        129823&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17089080810547" lon="11.433656692504883">
+        <name>129822</name>
+      </trkpt>
+      <trkpt lat="48.1702766418457" lon="11.435046195983887">
+        <name>129823</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87835</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130066&#xA;      &#xA;      &#xA;        130064&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15623474121094" lon="11.413535118103027">
+        <name>130066</name>
+      </trkpt>
+      <trkpt lat="48.15641403198242" lon="11.411934852600098">
+        <name>130064</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105523</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147074&#xA;      &#xA;      &#xA;        147075&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11006546020508" lon="11.519404411315918">
+        <name>147074</name>
+      </trkpt>
+      <trkpt lat="48.11186599731445" lon="11.517218589782715">
+        <name>147075</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87694</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129824&#xA;      &#xA;      &#xA;        129955&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.169593811035156" lon="11.436208724975586">
+        <name>129824</name>
+      </trkpt>
+      <trkpt lat="48.169002532958984" lon="11.43704891204834">
+        <name>129955</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89958</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132140&#xA;      &#xA;      &#xA;        132139&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14286422729492" lon="11.423746109008789">
+        <name>132140</name>
+      </trkpt>
+      <trkpt lat="48.14375305175781" lon="11.423383712768555">
+        <name>132139</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105099</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146644&#xA;      &#xA;      &#xA;        146652&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22251510620117" lon="11.626355171203613">
+        <name>146644</name>
+      </trkpt>
+      <trkpt lat="48.220001220703125" lon="11.631725311279297">
+        <name>146652</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86704</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128973&#xA;      &#xA;      &#xA;        128975&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.185516357421875" lon="11.436097145080566">
+        <name>128973</name>
+      </trkpt>
+      <trkpt lat="48.187320709228516" lon="11.436917304992676">
+        <name>128975</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87553</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129823&#xA;      &#xA;      &#xA;        129824&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1702766418457" lon="11.435046195983887">
+        <name>129823</name>
+      </trkpt>
+      <trkpt lat="48.169593811035156" lon="11.436208724975586">
+        <name>129824</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87836</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130064&#xA;      &#xA;      &#xA;        130063&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15641403198242" lon="11.411934852600098">
+        <name>130064</name>
+      </trkpt>
+      <trkpt lat="48.15658950805664" lon="11.4102201461792">
+        <name>130063</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105524</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147075&#xA;      &#xA;      &#xA;        147076&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11186599731445" lon="11.517218589782715">
+        <name>147075</name>
+      </trkpt>
+      <trkpt lat="48.1124382019043" lon="11.516919136047363">
+        <name>147076</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87695</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129955&#xA;      &#xA;      &#xA;        129956&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.169002532958984" lon="11.43704891204834">
+        <name>129955</name>
+      </trkpt>
+      <trkpt lat="48.16832733154297" lon="11.437868118286133">
+        <name>129956</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89959</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132143&#xA;      &#xA;      &#xA;        132144&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14329528808594" lon="11.417670249938965">
+        <name>132143</name>
+      </trkpt>
+      <trkpt lat="48.143333435058594" lon="11.418928146362305">
+        <name>132144</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86705</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128974&#xA;      &#xA;      &#xA;        128976&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18747329711914" lon="11.436745643615723">
+        <name>128974</name>
+      </trkpt>
+      <trkpt lat="48.18870544433594" lon="11.437164306640625">
+        <name>128976</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87554</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129824&#xA;      &#xA;      &#xA;        129825&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.169593811035156" lon="11.436208724975586">
+        <name>129824</name>
+      </trkpt>
+      <trkpt lat="48.16865158081055" lon="11.434913635253906">
+        <name>129825</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87837</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130064&#xA;      &#xA;      &#xA;        130065&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15641403198242" lon="11.411934852600098">
+        <name>130064</name>
+      </trkpt>
+      <trkpt lat="48.156654357910156" lon="11.411763191223145">
+        <name>130065</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105525</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147076&#xA;      &#xA;      &#xA;        147077&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1124382019043" lon="11.516919136047363">
+        <name>147076</name>
+      </trkpt>
+      <trkpt lat="48.11389923095703" lon="11.516790390014648">
+        <name>147077</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87696</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129956&#xA;      &#xA;      &#xA;        129957&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16832733154297" lon="11.437868118286133">
+        <name>129956</name>
+      </trkpt>
+      <trkpt lat="48.168113708496094" lon="11.438267707824707">
+        <name>129957</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89960</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132144&#xA;      &#xA;      &#xA;        132145&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.143333435058594" lon="11.418928146362305">
+        <name>132144</name>
+      </trkpt>
+      <trkpt lat="48.14338302612305" lon="11.419879913330078">
+        <name>132145</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86706</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128975&#xA;      &#xA;      &#xA;        128977&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.187320709228516" lon="11.436917304992676">
+        <name>128975</name>
+      </trkpt>
+      <trkpt lat="48.188995361328125" lon="11.437488555908203">
+        <name>128977</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87555</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129825&#xA;      &#xA;      &#xA;        129826&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16865158081055" lon="11.434913635253906">
+        <name>129825</name>
+      </trkpt>
+      <trkpt lat="48.16740798950195" lon="11.433294296264648">
+        <name>129826</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87838</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130065&#xA;      &#xA;      &#xA;        130061&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.156654357910156" lon="11.411763191223145">
+        <name>130065</name>
+      </trkpt>
+      <trkpt lat="48.15736389160156" lon="11.411820411682129">
+        <name>130061</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105526</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147077&#xA;      &#xA;      &#xA;        147078&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11389923095703" lon="11.516790390014648">
+        <name>147077</name>
+      </trkpt>
+      <trkpt lat="48.11650466918945" lon="11.516704559326172">
+        <name>147078</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87697</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129957&#xA;      &#xA;      &#xA;        129958&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.168113708496094" lon="11.438267707824707">
+        <name>129957</name>
+      </trkpt>
+      <trkpt lat="48.167694091796875" lon="11.439696311950684">
+        <name>129958</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89961</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132145&#xA;      &#xA;      &#xA;        132146&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14338302612305" lon="11.419879913330078">
+        <name>132145</name>
+      </trkpt>
+      <trkpt lat="48.14345932006836" lon="11.420699119567871">
+        <name>132146</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105102</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146652&#xA;      &#xA;      &#xA;        146653&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.220001220703125" lon="11.631725311279297">
+        <name>146652</name>
+      </trkpt>
+      <trkpt lat="48.216957092285156" lon="11.637124061584473">
+        <name>146653</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86707</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128976&#xA;      &#xA;      &#xA;        128978&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18870544433594" lon="11.437164306640625">
+        <name>128976</name>
+      </trkpt>
+      <trkpt lat="48.190494537353516" lon="11.437545776367188">
+        <name>128978</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87556</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129826&#xA;      &#xA;      &#xA;        129827&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16740798950195" lon="11.433294296264648">
+        <name>129826</name>
+      </trkpt>
+      <trkpt lat="48.16685104370117" lon="11.432703971862793">
+        <name>129827</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87839</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130061&#xA;      &#xA;      &#xA;        130062&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15736389160156" lon="11.411820411682129">
+        <name>130061</name>
+      </trkpt>
+      <trkpt lat="48.157100677490234" lon="11.411153793334961">
+        <name>130062</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105527</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147078&#xA;      &#xA;      &#xA;        147079&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11650466918945" lon="11.516704559326172">
+        <name>147078</name>
+      </trkpt>
+      <trkpt lat="48.11770248413086" lon="11.516919136047363">
+        <name>147079</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87698</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129958&#xA;      &#xA;      &#xA;        129959&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.167694091796875" lon="11.439696311950684">
+        <name>129958</name>
+      </trkpt>
+      <trkpt lat="48.167537689208984" lon="11.440686225891113">
+        <name>129959</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89962</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132146&#xA;      &#xA;      &#xA;        132147&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14345932006836" lon="11.420699119567871">
+        <name>132146</name>
+      </trkpt>
+      <trkpt lat="48.14353561401367" lon="11.421175003051758">
+        <name>132147</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86708</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128977&#xA;      &#xA;      &#xA;        128979&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.188995361328125" lon="11.437488555908203">
+        <name>128977</name>
+      </trkpt>
+      <trkpt lat="48.19072341918945" lon="11.43775463104248">
+        <name>128979</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87557</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129827&#xA;      &#xA;      &#xA;        129828&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16685104370117" lon="11.432703971862793">
+        <name>129827</name>
+      </trkpt>
+      <trkpt lat="48.16635513305664" lon="11.432494163513184">
+        <name>129828</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87840</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130062&#xA;      &#xA;      &#xA;        130063&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.157100677490234" lon="11.411153793334961">
+        <name>130062</name>
+      </trkpt>
+      <trkpt lat="48.15658950805664" lon="11.4102201461792">
+        <name>130063</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105528</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147079&#xA;      &#xA;      &#xA;        147080&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11770248413086" lon="11.516919136047363">
+        <name>147079</name>
+      </trkpt>
+      <trkpt lat="48.119537353515625" lon="11.517646789550781">
+        <name>147080</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87699</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129959&#xA;      &#xA;      &#xA;        129960&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.167537689208984" lon="11.440686225891113">
+        <name>129959</name>
+      </trkpt>
+      <trkpt lat="48.167388916015625" lon="11.441143035888672">
+        <name>129960</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89963</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128229&#xA;      &#xA;      &#xA;        132159&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.186790466308594" lon="11.382305145263672">
+        <name>128229</name>
+      </trkpt>
+      <trkpt lat="48.18618392944336" lon="11.383527755737305">
+        <name>132159</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86709</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128978&#xA;      &#xA;      &#xA;        128980&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.190494537353516" lon="11.437545776367188">
+        <name>128978</name>
+      </trkpt>
+      <trkpt lat="48.192291259765625" lon="11.437602996826172">
+        <name>128980</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87558</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129828&#xA;      &#xA;      &#xA;        129829&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16635513305664" lon="11.432494163513184">
+        <name>129828</name>
+      </trkpt>
+      <trkpt lat="48.16580581665039" lon="11.432646751403809">
+        <name>129829</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87841</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130061&#xA;      &#xA;      &#xA;        130060&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15736389160156" lon="11.411820411682129">
+        <name>130061</name>
+      </trkpt>
+      <trkpt lat="48.15772247314453" lon="11.412315368652344">
+        <name>130060</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105529</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147080&#xA;      &#xA;      &#xA;        147081&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.119537353515625" lon="11.517646789550781">
+        <name>147080</name>
+      </trkpt>
+      <trkpt lat="48.12205505371094" lon="11.518889427185059">
+        <name>147081</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87700</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129960&#xA;      &#xA;      &#xA;        129961&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.167388916015625" lon="11.441143035888672">
+        <name>129960</name>
+      </trkpt>
+      <trkpt lat="48.16704559326172" lon="11.441410064697266">
+        <name>129961</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89964</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132159&#xA;      &#xA;      &#xA;        132160&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18618392944336" lon="11.383527755737305">
+        <name>132159</name>
+      </trkpt>
+      <trkpt lat="48.18551254272461" lon="11.384899139404297">
+        <name>132160</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105105</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146653&#xA;      &#xA;      &#xA;        146654&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.216957092285156" lon="11.637124061584473">
+        <name>146653</name>
+      </trkpt>
+      <trkpt lat="48.21350860595703" lon="11.642379760742188">
+        <name>146654</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86710</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128979&#xA;      &#xA;      &#xA;        128981&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19072341918945" lon="11.43775463104248">
+        <name>128979</name>
+      </trkpt>
+      <trkpt lat="48.192481994628906" lon="11.437773704528809">
+        <name>128981</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87559</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129829&#xA;      &#xA;      &#xA;        129830&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16580581665039" lon="11.432646751403809">
+        <name>129829</name>
+      </trkpt>
+      <trkpt lat="48.165191650390625" lon="11.433122634887695">
+        <name>129830</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87842</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130060&#xA;      &#xA;      &#xA;        130059&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15772247314453" lon="11.412315368652344">
+        <name>130060</name>
+      </trkpt>
+      <trkpt lat="48.15803909301758" lon="11.41309642791748">
+        <name>130059</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105530</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147081&#xA;      &#xA;      &#xA;        147082&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12205505371094" lon="11.518889427185059">
+        <name>147081</name>
+      </trkpt>
+      <trkpt lat="48.1226806640625" lon="11.519332885742188">
+        <name>147082</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87701</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129961&#xA;      &#xA;      &#xA;        129962&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16704559326172" lon="11.441410064697266">
+        <name>129961</name>
+      </trkpt>
+      <trkpt lat="48.166259765625" lon="11.441752433776855">
+        <name>129962</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89965</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132160&#xA;      &#xA;      &#xA;        128231&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18551254272461" lon="11.384899139404297">
+        <name>132160</name>
+      </trkpt>
+      <trkpt lat="48.1844367980957" lon="11.386801719665527">
+        <name>128231</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105106</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146654&#xA;      &#xA;      &#xA;        146657&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21350860595703" lon="11.642379760742188">
+        <name>146654</name>
+      </trkpt>
+      <trkpt lat="48.21014404296875" lon="11.64717960357666">
+        <name>146657</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86711</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128980&#xA;      &#xA;      &#xA;        128982&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.192291259765625" lon="11.437602996826172">
+        <name>128980</name>
+      </trkpt>
+      <trkpt lat="48.193756103515625" lon="11.437374114990234">
+        <name>128982</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87560</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129830&#xA;      &#xA;      &#xA;        129831&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.165191650390625" lon="11.433122634887695">
+        <name>129830</name>
+      </trkpt>
+      <trkpt lat="48.16447067260742" lon="11.433636665344238">
+        <name>129831</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105531</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147082&#xA;      &#xA;      &#xA;        147083&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1226806640625" lon="11.519332885742188">
+        <name>147082</name>
+      </trkpt>
+      <trkpt lat="48.123046875" lon="11.519389152526855">
+        <name>147083</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87702</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129962&#xA;      &#xA;      &#xA;        129963&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.166259765625" lon="11.441752433776855">
+        <name>129962</name>
+      </trkpt>
+      <trkpt lat="48.16554641723633" lon="11.442113876342773">
+        <name>129963</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89966</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132159&#xA;      &#xA;      &#xA;        132154&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18618392944336" lon="11.383527755737305">
+        <name>132159</name>
+      </trkpt>
+      <trkpt lat="48.187095642089844" lon="11.384841918945312">
+        <name>132154</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86712</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128981&#xA;      &#xA;      &#xA;        128983&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.192481994628906" lon="11.437773704528809">
+        <name>128981</name>
+      </trkpt>
+      <trkpt lat="48.19364547729492" lon="11.437621116638184">
+        <name>128983</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87561</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129831&#xA;      &#xA;      &#xA;        129832&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16447067260742" lon="11.433636665344238">
+        <name>129831</name>
+      </trkpt>
+      <trkpt lat="48.16414260864258" lon="11.433693885803223">
+        <name>129832</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105532</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147083&#xA;      &#xA;      &#xA;        147084&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.123046875" lon="11.519389152526855">
+        <name>147083</name>
+      </trkpt>
+      <trkpt lat="48.12335205078125" lon="11.519131660461426">
+        <name>147084</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87703</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129963&#xA;      &#xA;      &#xA;        129964&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16554641723633" lon="11.442113876342773">
+        <name>129963</name>
+      </trkpt>
+      <trkpt lat="48.16469955444336" lon="11.442723274230957">
+        <name>129964</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89967</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132154&#xA;      &#xA;      &#xA;        132155&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.187095642089844" lon="11.384841918945312">
+        <name>132154</name>
+      </trkpt>
+      <trkpt lat="48.188392639160156" lon="11.386641502380371">
+        <name>132155</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86713</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128982&#xA;      &#xA;      &#xA;        128984&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.193756103515625" lon="11.437374114990234">
+        <name>128982</name>
+      </trkpt>
+      <trkpt lat="48.19585037231445" lon="11.436840057373047">
+        <name>128984</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87562</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129832&#xA;      &#xA;      &#xA;        129833&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16414260864258" lon="11.433693885803223">
+        <name>129832</name>
+      </trkpt>
+      <trkpt lat="48.163822174072266" lon="11.433523178100586">
+        <name>129833</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105533</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147084&#xA;      &#xA;      &#xA;        147085&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12335205078125" lon="11.519131660461426">
+        <name>147084</name>
+      </trkpt>
+      <trkpt lat="48.12358093261719" lon="11.518388748168945">
+        <name>147085</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89968</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132155&#xA;      &#xA;      &#xA;        132156&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.188392639160156" lon="11.386641502380371">
+        <name>132155</name>
+      </trkpt>
+      <trkpt lat="48.188961029052734" lon="11.38735580444336">
+        <name>132156</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87704</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129964&#xA;      &#xA;      &#xA;        129965&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16469955444336" lon="11.442723274230957">
+        <name>129964</name>
+      </trkpt>
+      <trkpt lat="48.163856506347656" lon="11.443180084228516">
+        <name>129965</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86714</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128983&#xA;      &#xA;      &#xA;        128985&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19364547729492" lon="11.437621116638184">
+        <name>128983</name>
+      </trkpt>
+      <trkpt lat="48.19567108154297" lon="11.437126159667969">
+        <name>128985</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87563</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129833&#xA;      &#xA;      &#xA;        129834&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.163822174072266" lon="11.433523178100586">
+        <name>129833</name>
+      </trkpt>
+      <trkpt lat="48.16340255737305" lon="11.433084487915039">
+        <name>129834</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105534</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147085&#xA;      &#xA;      &#xA;        147086&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12358093261719" lon="11.518388748168945">
+        <name>147085</name>
+      </trkpt>
+      <trkpt lat="48.12434005737305" lon="11.514275550842285">
+        <name>147086</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89969</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132156&#xA;      &#xA;      &#xA;        132157&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.188961029052734" lon="11.38735580444336">
+        <name>132156</name>
+      </trkpt>
+      <trkpt lat="48.18940353393555" lon="11.387755393981934">
+        <name>132157</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87705</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129965&#xA;      &#xA;      &#xA;        129966&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.163856506347656" lon="11.443180084228516">
+        <name>129965</name>
+      </trkpt>
+      <trkpt lat="48.16322326660156" lon="11.44354248046875">
+        <name>129966</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86715</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128984&#xA;      &#xA;      &#xA;        128986&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19585037231445" lon="11.436840057373047">
+        <name>128984</name>
+      </trkpt>
+      <trkpt lat="48.197635650634766" lon="11.436440467834473">
+        <name>128986</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87564</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129834&#xA;      &#xA;      &#xA;        129835&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16340255737305" lon="11.433084487915039">
+        <name>129834</name>
+      </trkpt>
+      <trkpt lat="48.16285705566406" lon="11.432228088378906">
+        <name>129835</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90111</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132290&#xA;      &#xA;      &#xA;        132291&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23653793334961" lon="11.35439395904541">
+        <name>132290</name>
+      </trkpt>
+      <trkpt lat="48.2373161315918" lon="11.356379508972168">
+        <name>132291</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105535</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147086&#xA;      &#xA;      &#xA;        147087&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12434005737305" lon="11.514275550842285">
+        <name>147086</name>
+      </trkpt>
+      <trkpt lat="48.124759674072266" lon="11.511476516723633">
+        <name>147087</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89970</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132157&#xA;      &#xA;      &#xA;        132158&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18940353393555" lon="11.387755393981934">
+        <name>132157</name>
+      </trkpt>
+      <trkpt lat="48.19060134887695" lon="11.388355255126953">
+        <name>132158</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87706</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129966&#xA;      &#xA;      &#xA;        129967&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16322326660156" lon="11.44354248046875">
+        <name>129966</name>
+      </trkpt>
+      <trkpt lat="48.16211700439453" lon="11.444266319274902">
+        <name>129967</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86716</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128985&#xA;      &#xA;      &#xA;        128987&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19567108154297" lon="11.437126159667969">
+        <name>128985</name>
+      </trkpt>
+      <trkpt lat="48.19767761230469" lon="11.43670654296875">
+        <name>128987</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87565</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129835&#xA;      &#xA;      &#xA;        129836&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16285705566406" lon="11.432228088378906">
+        <name>129835</name>
+      </trkpt>
+      <trkpt lat="48.16215896606445" lon="11.43102741241455">
+        <name>129836</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90112</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132291&#xA;      &#xA;      &#xA;        132292&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2373161315918" lon="11.356379508972168">
+        <name>132291</name>
+      </trkpt>
+      <trkpt lat="48.23818588256836" lon="11.359378814697266">
+        <name>132292</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105536</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147087&#xA;      &#xA;      &#xA;        147088&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.124759674072266" lon="11.511476516723633">
+        <name>147087</name>
+      </trkpt>
+      <trkpt lat="48.12519836425781" lon="11.508905410766602">
+        <name>147088</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89971</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132158&#xA;      &#xA;      &#xA;        132161&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19060134887695" lon="11.388355255126953">
+        <name>132158</name>
+      </trkpt>
+      <trkpt lat="48.191253662109375" lon="11.38853645324707">
+        <name>132161</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87707</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129967&#xA;      &#xA;      &#xA;        129968&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16211700439453" lon="11.444266319274902">
+        <name>129967</name>
+      </trkpt>
+      <trkpt lat="48.161888122558594" lon="11.443370819091797">
+        <name>129968</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86717</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128987&#xA;      &#xA;      &#xA;        128988&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19767761230469" lon="11.43670654296875">
+        <name>128987</name>
+      </trkpt>
+      <trkpt lat="48.199134826660156" lon="11.436782836914062">
+        <name>128988</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87566</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129836&#xA;      &#xA;      &#xA;        129837&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16215896606445" lon="11.43102741241455">
+        <name>129836</name>
+      </trkpt>
+      <trkpt lat="48.1616325378418" lon="11.429903030395508">
+        <name>129837</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90113</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132292&#xA;      &#xA;      &#xA;        132293&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23818588256836" lon="11.359378814697266">
+        <name>132292</name>
+      </trkpt>
+      <trkpt lat="48.2391242980957" lon="11.363492012023926">
+        <name>132293</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105537</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147088&#xA;      &#xA;      &#xA;        147089&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12519836425781" lon="11.508905410766602">
+        <name>147088</name>
+      </trkpt>
+      <trkpt lat="48.125675201416016" lon="11.505277633666992">
+        <name>147089</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89972</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132161&#xA;      &#xA;      &#xA;        132162&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.191253662109375" lon="11.38853645324707">
+        <name>132161</name>
+      </trkpt>
+      <trkpt lat="48.192012786865234" lon="11.388593673706055">
+        <name>132162</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87708</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129968&#xA;      &#xA;      &#xA;        129971&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.161888122558594" lon="11.443370819091797">
+        <name>129968</name>
+      </trkpt>
+      <trkpt lat="48.16154479980469" lon="11.442514419555664">
+        <name>129971</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86718</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128988&#xA;      &#xA;      &#xA;        128989&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.199134826660156" lon="11.436782836914062">
+        <name>128988</name>
+      </trkpt>
+      <trkpt lat="48.200531005859375" lon="11.437392234802246">
+        <name>128989</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87567</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129837&#xA;      &#xA;      &#xA;        129838&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1616325378418" lon="11.429903030395508">
+        <name>129837</name>
+      </trkpt>
+      <trkpt lat="48.16147994995117" lon="11.429370880126953">
+        <name>129838</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90114</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132293&#xA;      &#xA;      &#xA;        132294&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2391242980957" lon="11.363492012023926">
+        <name>132293</name>
+      </trkpt>
+      <trkpt lat="48.2396354675293" lon="11.366806030273438">
+        <name>132294</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105538</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147089&#xA;      &#xA;      &#xA;        147090&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.125675201416016" lon="11.505277633666992">
+        <name>147089</name>
+      </trkpt>
+      <trkpt lat="48.12584686279297" lon="11.50187873840332">
+        <name>147090</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89973</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132162&#xA;      &#xA;      &#xA;        132163&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.192012786865234" lon="11.388593673706055">
+        <name>132162</name>
+      </trkpt>
+      <trkpt lat="48.19266891479492" lon="11.388726234436035">
+        <name>132163</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87709</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129971&#xA;      &#xA;      &#xA;        129972&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16154479980469" lon="11.442514419555664">
+        <name>129971</name>
+      </trkpt>
+      <trkpt lat="48.162025451660156" lon="11.442075729370117">
+        <name>129972</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105114</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146657&#xA;      &#xA;      &#xA;        146663&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21014404296875" lon="11.64717960357666">
+        <name>146657</name>
+      </trkpt>
+      <trkpt lat="48.20778274536133" lon="11.65080738067627">
+        <name>146663</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86719</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128989&#xA;      &#xA;      &#xA;        128990&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.200531005859375" lon="11.437392234802246">
+        <name>128989</name>
+      </trkpt>
+      <trkpt lat="48.20178985595703" lon="11.438440322875977">
+        <name>128990</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87568</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129838&#xA;      &#xA;      &#xA;        129839&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16147994995117" lon="11.429370880126953">
+        <name>129838</name>
+      </trkpt>
+      <trkpt lat="48.161380767822266" lon="11.428799629211426">
+        <name>129839</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90115</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132294&#xA;      &#xA;      &#xA;        132295&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2396354675293" lon="11.366806030273438">
+        <name>132294</name>
+      </trkpt>
+      <trkpt lat="48.240013122558594" lon="11.369776725769043">
+        <name>132295</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105539</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147090&#xA;      &#xA;      &#xA;        147091&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12584686279297" lon="11.50187873840332">
+        <name>147090</name>
+      </trkpt>
+      <trkpt lat="48.12542724609375" lon="11.497964859008789">
+        <name>147091</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89974</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132163&#xA;      &#xA;      &#xA;        132164&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19266891479492" lon="11.388726234436035">
+        <name>132163</name>
+      </trkpt>
+      <trkpt lat="48.19442367553711" lon="11.38927936553955">
+        <name>132164</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87710</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129972&#xA;      &#xA;      &#xA;        129973&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.162025451660156" lon="11.442075729370117">
+        <name>129972</name>
+      </trkpt>
+      <trkpt lat="48.16244888305664" lon="11.441847801208496">
+        <name>129973</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105115</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146663&#xA;      &#xA;      &#xA;        146664&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20778274536133" lon="11.65080738067627">
+        <name>146663</name>
+      </trkpt>
+      <trkpt lat="48.20498275756836" lon="11.65574836730957">
+        <name>146664</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86720</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128986&#xA;      &#xA;      &#xA;        128991&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.197635650634766" lon="11.436440467834473">
+        <name>128986</name>
+      </trkpt>
+      <trkpt lat="48.199188232421875" lon="11.436497688293457">
+        <name>128991</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87569</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129839&#xA;      &#xA;      &#xA;        129840&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.161380767822266" lon="11.428799629211426">
+        <name>129839</name>
+      </trkpt>
+      <trkpt lat="48.16111373901367" lon="11.42811393737793">
+        <name>129840</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90116</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132295&#xA;      &#xA;      &#xA;        132296&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.240013122558594" lon="11.369776725769043">
+        <name>132295</name>
+      </trkpt>
+      <trkpt lat="48.240264892578125" lon="11.373205184936523">
+        <name>132296</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105540</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147091&#xA;      &#xA;      &#xA;        147092&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12542724609375" lon="11.497964859008789">
+        <name>147091</name>
+      </trkpt>
+      <trkpt lat="48.12466812133789" lon="11.494766235351562">
+        <name>147092</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89975</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132164&#xA;      &#xA;      &#xA;        132165&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19442367553711" lon="11.38927936553955">
+        <name>132164</name>
+      </trkpt>
+      <trkpt lat="48.19516372680664" lon="11.3895263671875">
+        <name>132165</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87711</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129973&#xA;      &#xA;      &#xA;        129970&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16244888305664" lon="11.441847801208496">
+        <name>129973</name>
+      </trkpt>
+      <trkpt lat="48.16300582885742" lon="11.4417142868042">
+        <name>129970</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105116</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146664&#xA;      &#xA;      &#xA;        146665&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20498275756836" lon="11.65574836730957">
+        <name>146664</name>
+      </trkpt>
+      <trkpt lat="48.20323181152344" lon="11.659547805786133">
+        <name>146665</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86721</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128991&#xA;      &#xA;      &#xA;        128992&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.199188232421875" lon="11.436497688293457">
+        <name>128991</name>
+      </trkpt>
+      <trkpt lat="48.20064926147461" lon="11.437145233154297">
+        <name>128992</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87570</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129840&#xA;      &#xA;      &#xA;        129841&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16111373901367" lon="11.42811393737793">
+        <name>129840</name>
+      </trkpt>
+      <trkpt lat="48.16082000732422" lon="11.427447319030762">
+        <name>129841</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90117</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132296&#xA;      &#xA;      &#xA;        132297&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.240264892578125" lon="11.373205184936523">
+        <name>132296</name>
+      </trkpt>
+      <trkpt lat="48.240264892578125" lon="11.377461433410645">
+        <name>132297</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105541</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147092&#xA;      &#xA;      &#xA;        147093&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12466812133789" lon="11.494766235351562">
+        <name>147092</name>
+      </trkpt>
+      <trkpt lat="48.12397766113281" lon="11.491280555725098">
+        <name>147093</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89976</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132165&#xA;      &#xA;      &#xA;        132166&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19516372680664" lon="11.3895263671875">
+        <name>132165</name>
+      </trkpt>
+      <trkpt lat="48.19721984863281" lon="11.389925956726074">
+        <name>132166</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87712</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129970&#xA;      &#xA;      &#xA;        129969&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16300582885742" lon="11.4417142868042">
+        <name>129970</name>
+      </trkpt>
+      <trkpt lat="48.16310501098633" lon="11.4426851272583">
+        <name>129969</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87571</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129841&#xA;      &#xA;      &#xA;        129842&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16082000732422" lon="11.427447319030762">
+        <name>129841</name>
+      </trkpt>
+      <trkpt lat="48.16069412231445" lon="11.426705360412598">
+        <name>129842</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90118</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132297&#xA;      &#xA;      &#xA;        132298&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.240264892578125" lon="11.377461433410645">
+        <name>132297</name>
+      </trkpt>
+      <trkpt lat="48.240013122558594" lon="11.380974769592285">
+        <name>132298</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86722</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128992&#xA;      &#xA;      &#xA;        128993&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20064926147461" lon="11.437145233154297">
+        <name>128992</name>
+      </trkpt>
+      <trkpt lat="48.20195770263672" lon="11.438268661499023">
+        <name>128993</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105542</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147093&#xA;      &#xA;      &#xA;        147094&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12397766113281" lon="11.491280555725098">
+        <name>147093</name>
+      </trkpt>
+      <trkpt lat="48.12375259399414" lon="11.487624168395996">
+        <name>147094</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89977</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132166&#xA;      &#xA;      &#xA;        132167&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19721984863281" lon="11.389925956726074">
+        <name>132166</name>
+      </trkpt>
+      <trkpt lat="48.19827651977539" lon="11.390192985534668">
+        <name>132167</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87713</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129969&#xA;      &#xA;      &#xA;        129966&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16310501098633" lon="11.4426851272583">
+        <name>129969</name>
+      </trkpt>
+      <trkpt lat="48.16322326660156" lon="11.44354248046875">
+        <name>129966</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87572</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129842&#xA;      &#xA;      &#xA;        129843&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16069412231445" lon="11.426705360412598">
+        <name>129842</name>
+      </trkpt>
+      <trkpt lat="48.16080856323242" lon="11.426152229309082">
+        <name>129843</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90119</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132298&#xA;      &#xA;      &#xA;        132299&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.240013122558594" lon="11.380974769592285">
+        <name>132298</name>
+      </trkpt>
+      <trkpt lat="48.239463806152344" lon="11.384860038757324">
+        <name>132299</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86723</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128990&#xA;      &#xA;      &#xA;        128994&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20178985595703" lon="11.438440322875977">
+        <name>128990</name>
+      </trkpt>
+      <trkpt lat="48.202857971191406" lon="11.439945220947266">
+        <name>128994</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105543</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147094&#xA;      &#xA;      &#xA;        147095&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12375259399414" lon="11.487624168395996">
+        <name>147094</name>
+      </trkpt>
+      <trkpt lat="48.123634338378906" lon="11.479598045349121">
+        <name>147095</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89978</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132167&#xA;      &#xA;      &#xA;        132168&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19827651977539" lon="11.390192985534668">
+        <name>132167</name>
+      </trkpt>
+      <trkpt lat="48.19978332519531" lon="11.390555381774902">
+        <name>132168</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87714</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129969&#xA;      &#xA;      &#xA;        129974&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16310501098633" lon="11.4426851272583">
+        <name>129969</name>
+      </trkpt>
+      <trkpt lat="48.162471771240234" lon="11.442952156066895">
+        <name>129974</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90120</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132299&#xA;      &#xA;      &#xA;        132300&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.239463806152344" lon="11.384860038757324">
+        <name>132299</name>
+      </trkpt>
+      <trkpt lat="48.23891067504883" lon="11.387601852416992">
+        <name>132300</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86724</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128994&#xA;      &#xA;      &#xA;        128995&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.202857971191406" lon="11.439945220947266">
+        <name>128994</name>
+      </trkpt>
+      <trkpt lat="48.20366668701172" lon="11.441774368286133">
+        <name>128995</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87573</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129843&#xA;      &#xA;      &#xA;        129844&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16080856323242" lon="11.426152229309082">
+        <name>129843</name>
+      </trkpt>
+      <trkpt lat="48.16131591796875" lon="11.425256729125977">
+        <name>129844</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105544</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147095&#xA;      &#xA;      &#xA;        147096&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.123634338378906" lon="11.479598045349121">
+        <name>147095</name>
+      </trkpt>
+      <trkpt lat="48.12358093261719" lon="11.474769592285156">
+        <name>147096</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89979</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132168&#xA;      &#xA;      &#xA;        132169&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19978332519531" lon="11.390555381774902">
+        <name>132168</name>
+      </trkpt>
+      <trkpt lat="48.20077133178711" lon="11.390555381774902">
+        <name>132169</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87715</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129974&#xA;      &#xA;      &#xA;        129968&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.162471771240234" lon="11.442952156066895">
+        <name>129974</name>
+      </trkpt>
+      <trkpt lat="48.161888122558594" lon="11.443370819091797">
+        <name>129968</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105120</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146665&#xA;      &#xA;      &#xA;        146675&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20323181152344" lon="11.659547805786133">
+        <name>146665</name>
+      </trkpt>
+      <trkpt lat="48.20144271850586" lon="11.663862228393555">
+        <name>146675</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90121</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132300&#xA;      &#xA;      &#xA;        132301&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23891067504883" lon="11.387601852416992">
+        <name>132300</name>
+      </trkpt>
+      <trkpt lat="48.237770080566406" lon="11.391716003417969">
+        <name>132301</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86725</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128995&#xA;      &#xA;      &#xA;        128996&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20366668701172" lon="11.441774368286133">
+        <name>128995</name>
+      </trkpt>
+      <trkpt lat="48.2041130065918" lon="11.443658828735352">
+        <name>128996</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87574</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129844&#xA;      &#xA;      &#xA;        129845&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16131591796875" lon="11.425256729125977">
+        <name>129844</name>
+      </trkpt>
+      <trkpt lat="48.16156005859375" lon="11.424762725830078">
+        <name>129845</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105545</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147096&#xA;      &#xA;      &#xA;        147097&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12358093261719" lon="11.474769592285156">
+        <name>147096</name>
+      </trkpt>
+      <trkpt lat="48.123714447021484" lon="11.470142364501953">
+        <name>147097</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89980</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132169&#xA;      &#xA;      &#xA;        132170&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20077133178711" lon="11.390555381774902">
+        <name>132169</name>
+      </trkpt>
+      <trkpt lat="48.2012939453125" lon="11.390402793884277">
+        <name>132170</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87716</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129971&#xA;      &#xA;      &#xA;        129975&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16154479980469" lon="11.442514419555664">
+        <name>129971</name>
+      </trkpt>
+      <trkpt lat="48.161048889160156" lon="11.44163703918457">
+        <name>129975</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90122</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132301&#xA;      &#xA;      &#xA;        132302&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.237770080566406" lon="11.391716003417969">
+        <name>132301</name>
+      </trkpt>
+      <trkpt lat="48.2369384765625" lon="11.394429206848145">
+        <name>132302</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86726</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128996&#xA;      &#xA;      &#xA;        128997&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2041130065918" lon="11.443658828735352">
+        <name>128996</name>
+      </trkpt>
+      <trkpt lat="48.20431137084961" lon="11.445525169372559">
+        <name>128997</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87575</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129845&#xA;      &#xA;      &#xA;        129846&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16156005859375" lon="11.424762725830078">
+        <name>129845</name>
+      </trkpt>
+      <trkpt lat="48.161624908447266" lon="11.424362182617188">
+        <name>129846</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105546</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147097&#xA;      &#xA;      &#xA;        147098&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.123714447021484" lon="11.470142364501953">
+        <name>147097</name>
+      </trkpt>
+      <trkpt lat="48.12397766113281" lon="11.462172508239746">
+        <name>147098</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89981</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132170&#xA;      &#xA;      &#xA;        132171&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2012939453125" lon="11.390402793884277">
+        <name>132170</name>
+      </trkpt>
+      <trkpt lat="48.20193862915039" lon="11.389888763427734">
+        <name>132171</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87717</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129975&#xA;      &#xA;      &#xA;        129976&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.161048889160156" lon="11.44163703918457">
+        <name>129975</name>
+      </trkpt>
+      <trkpt lat="48.16059112548828" lon="11.440990447998047">
+        <name>129976</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105122</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146675&#xA;      &#xA;      &#xA;        146676&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20144271850586" lon="11.663862228393555">
+        <name>146675</name>
+      </trkpt>
+      <trkpt lat="48.19957733154297" lon="11.66911792755127">
+        <name>146676</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90123</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132302&#xA;      &#xA;      &#xA;        132303&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2369384765625" lon="11.394429206848145">
+        <name>132302</name>
+      </trkpt>
+      <trkpt lat="48.2354736328125" lon="11.398770332336426">
+        <name>132303</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86727</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128993&#xA;      &#xA;      &#xA;        128998&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20195770263672" lon="11.438268661499023">
+        <name>128993</name>
+      </trkpt>
+      <trkpt lat="48.20302200317383" lon="11.439850807189941">
+        <name>128998</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87576</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129846&#xA;      &#xA;      &#xA;        129847&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.161624908447266" lon="11.424362182617188">
+        <name>129846</name>
+      </trkpt>
+      <trkpt lat="48.16154479980469" lon="11.423810005187988">
+        <name>129847</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105547</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147098&#xA;      &#xA;      &#xA;        147099&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12397766113281" lon="11.462172508239746">
+        <name>147098</name>
+      </trkpt>
+      <trkpt lat="48.12434005737305" lon="11.457630157470703">
+        <name>147099</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89982</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132171&#xA;      &#xA;      &#xA;        132172&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20193862915039" lon="11.389888763427734">
+        <name>132171</name>
+      </trkpt>
+      <trkpt lat="48.20269012451172" lon="11.389164924621582">
+        <name>132172</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87718</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129976&#xA;      &#xA;      &#xA;        129977&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16059112548828" lon="11.440990447998047">
+        <name>129976</name>
+      </trkpt>
+      <trkpt lat="48.16019821166992" lon="11.440552711486816">
+        <name>129977</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90124</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132303&#xA;      &#xA;      &#xA;        132304&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2354736328125" lon="11.398770332336426">
+        <name>132303</name>
+      </trkpt>
+      <trkpt lat="48.23393249511719" lon="11.403369903564453">
+        <name>132304</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86728</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128998&#xA;      &#xA;      &#xA;        128999&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20302200317383" lon="11.439850807189941">
+        <name>128998</name>
+      </trkpt>
+      <trkpt lat="48.2038459777832" lon="11.441754341125488">
+        <name>128999</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87577</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129847&#xA;      &#xA;      &#xA;        129848&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16154479980469" lon="11.423810005187988">
+        <name>129847</name>
+      </trkpt>
+      <trkpt lat="48.16140365600586" lon="11.423238754272461">
+        <name>129848</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105548</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147099&#xA;      &#xA;      &#xA;        147100&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12434005737305" lon="11.457630157470703">
+        <name>147099</name>
+      </trkpt>
+      <trkpt lat="48.12485885620117" lon="11.453230857849121">
+        <name>147100</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89983</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132172&#xA;      &#xA;      &#xA;        132173&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20269012451172" lon="11.389164924621582">
+        <name>132172</name>
+      </trkpt>
+      <trkpt lat="48.20299530029297" lon="11.390631675720215">
+        <name>132173</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87719</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129977&#xA;      &#xA;      &#xA;        129978&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16019821166992" lon="11.440552711486816">
+        <name>129977</name>
+      </trkpt>
+      <trkpt lat="48.160160064697266" lon="11.440266609191895">
+        <name>129978</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90125</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132304&#xA;      &#xA;      &#xA;        132305&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23393249511719" lon="11.403369903564453">
+        <name>132304</name>
+      </trkpt>
+      <trkpt lat="48.23289108276367" lon="11.406712532043457">
+        <name>132305</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86729</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128999&#xA;      &#xA;      &#xA;        129000&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2038459777832" lon="11.441754341125488">
+        <name>128999</name>
+      </trkpt>
+      <trkpt lat="48.20424270629883" lon="11.443469047546387">
+        <name>129000</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87578</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129848&#xA;      &#xA;      &#xA;        129849&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16140365600586" lon="11.423238754272461">
+        <name>129848</name>
+      </trkpt>
+      <trkpt lat="48.1607780456543" lon="11.423638343811035">
+        <name>129849</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105549</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147100&#xA;      &#xA;      &#xA;        147101&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12485885620117" lon="11.453230857849121">
+        <name>147100</name>
+      </trkpt>
+      <trkpt lat="48.12556457519531" lon="11.450488090515137">
+        <name>147101</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89984</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132173&#xA;      &#xA;      &#xA;        132174&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20299530029297" lon="11.390631675720215">
+        <name>132173</name>
+      </trkpt>
+      <trkpt lat="48.20321273803711" lon="11.391849517822266">
+        <name>132174</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87720</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129978&#xA;      &#xA;      &#xA;        129979&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.160160064697266" lon="11.440266609191895">
+        <name>129978</name>
+      </trkpt>
+      <trkpt lat="48.16059112548828" lon="11.439332962036133">
+        <name>129979</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90126</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132305&#xA;      &#xA;      &#xA;        132306&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23289108276367" lon="11.406712532043457">
+        <name>132305</name>
+      </trkpt>
+      <trkpt lat="48.231895446777344" lon="11.410367965698242">
+        <name>132306</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86730</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129000&#xA;      &#xA;      &#xA;        129001&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20424270629883" lon="11.443469047546387">
+        <name>129000</name>
+      </trkpt>
+      <trkpt lat="48.204429626464844" lon="11.445259094238281">
+        <name>129001</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87579</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129849&#xA;      &#xA;      &#xA;        129850&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1607780456543" lon="11.423638343811035">
+        <name>129849</name>
+      </trkpt>
+      <trkpt lat="48.15984344482422" lon="11.42409610748291">
+        <name>129850</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105550</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147101&#xA;      &#xA;      &#xA;        147102&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12556457519531" lon="11.450488090515137">
+        <name>147101</name>
+      </trkpt>
+      <trkpt lat="48.12554168701172" lon="11.450003623962402">
+        <name>147102</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89985</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132174&#xA;      &#xA;      &#xA;        132175&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20321273803711" lon="11.391849517822266">
+        <name>132174</name>
+      </trkpt>
+      <trkpt lat="48.2035026550293" lon="11.393126487731934">
+        <name>132175</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87721</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129979&#xA;      &#xA;      &#xA;        129980&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16059112548828" lon="11.439332962036133">
+        <name>129979</name>
+      </trkpt>
+      <trkpt lat="48.1610107421875" lon="11.438190460205078">
+        <name>129980</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90127</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132306&#xA;      &#xA;      &#xA;        132307&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.231895446777344" lon="11.410367965698242">
+        <name>132306</name>
+      </trkpt>
+      <trkpt lat="48.23114013671875" lon="11.414167404174805">
+        <name>132307</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86731</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128997&#xA;      &#xA;      &#xA;        129002&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20431137084961" lon="11.445525169372559">
+        <name>128997</name>
+      </trkpt>
+      <trkpt lat="48.204376220703125" lon="11.448440551757812">
+        <name>129002</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87580</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129850&#xA;      &#xA;      &#xA;        129851&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15984344482422" lon="11.42409610748291">
+        <name>129850</name>
+      </trkpt>
+      <trkpt lat="48.15902328491211" lon="11.4244384765625">
+        <name>129851</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105551</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147102&#xA;      &#xA;      &#xA;        147103&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12554168701172" lon="11.450003623962402">
+        <name>147102</name>
+      </trkpt>
+      <trkpt lat="48.12527847290039" lon="11.449774742126465">
+        <name>147103</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89986</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132175&#xA;      &#xA;      &#xA;        132176&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2035026550293" lon="11.393126487731934">
+        <name>132175</name>
+      </trkpt>
+      <trkpt lat="48.20368957519531" lon="11.393887519836426">
+        <name>132176</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87722</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129980&#xA;      &#xA;      &#xA;        129981&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1610107421875" lon="11.438190460205078">
+        <name>129980</name>
+      </trkpt>
+      <trkpt lat="48.161468505859375" lon="11.43708610534668">
+        <name>129981</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86732</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129002&#xA;      &#xA;      &#xA;        129003&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.204376220703125" lon="11.448440551757812">
+        <name>129002</name>
+      </trkpt>
+      <trkpt lat="48.204437255859375" lon="11.451411247253418">
+        <name>129003</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90128</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132307&#xA;      &#xA;      &#xA;        132308&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23114013671875" lon="11.414167404174805">
+        <name>132307</name>
+      </trkpt>
+      <trkpt lat="48.23054885864258" lon="11.41833782196045">
+        <name>132308</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105552</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147103&#xA;      &#xA;      &#xA;        147104&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12527847290039" lon="11.449774742126465">
+        <name>147103</name>
+      </trkpt>
+      <trkpt lat="48.12443542480469" lon="11.449603080749512">
+        <name>147104</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89987</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132176&#xA;      &#xA;      &#xA;        132177&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20368957519531" lon="11.393887519836426">
+        <name>132176</name>
+      </trkpt>
+      <trkpt lat="48.204376220703125" lon="11.39306926727295">
+        <name>132177</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87723</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129981&#xA;      &#xA;      &#xA;        129982&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.161468505859375" lon="11.43708610534668">
+        <name>129981</name>
+      </trkpt>
+      <trkpt lat="48.16179656982422" lon="11.437276840209961">
+        <name>129982</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105128</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146676&#xA;      &#xA;      &#xA;        146677&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19957733154297" lon="11.66911792755127">
+        <name>146676</name>
+      </trkpt>
+      <trkpt lat="48.19807052612305" lon="11.673717498779297">
+        <name>146677</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86733</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129001&#xA;      &#xA;      &#xA;        129004&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.204429626464844" lon="11.445259094238281">
+        <name>129001</name>
+      </trkpt>
+      <trkpt lat="48.204532623291016" lon="11.448458671569824">
+        <name>129004</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90129</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132308&#xA;      &#xA;      &#xA;        132309&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23054885864258" lon="11.41833782196045">
+        <name>132308</name>
+      </trkpt>
+      <trkpt lat="48.23027801513672" lon="11.421852111816406">
+        <name>132309</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105553</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147104&#xA;      &#xA;      &#xA;        147105&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12443542480469" lon="11.449603080749512">
+        <name>147104</name>
+      </trkpt>
+      <trkpt lat="48.12415313720703" lon="11.449317932128906">
+        <name>147105</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89988</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132177&#xA;      &#xA;      &#xA;        132178&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.204376220703125" lon="11.39306926727295">
+        <name>132177</name>
+      </trkpt>
+      <trkpt lat="48.20583724975586" lon="11.391183853149414">
+        <name>132178</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87724</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129982&#xA;      &#xA;      &#xA;        129983&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16179656982422" lon="11.437276840209961">
+        <name>129982</name>
+      </trkpt>
+      <trkpt lat="48.16288757324219" lon="11.437276840209961">
+        <name>129983</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105129</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146677&#xA;      &#xA;      &#xA;        146678&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19807052612305" lon="11.673717498779297">
+        <name>146677</name>
+      </trkpt>
+      <trkpt lat="48.196720123291016" lon="11.6783447265625">
+        <name>146678</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86734</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129004&#xA;      &#xA;      &#xA;        129005&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.204532623291016" lon="11.448458671569824">
+        <name>129004</name>
+      </trkpt>
+      <trkpt lat="48.20460510253906" lon="11.451411247253418">
+        <name>129005</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87583</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129853&#xA;      &#xA;      &#xA;        129854&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15824508666992" lon="11.42487621307373">
+        <name>129853</name>
+      </trkpt>
+      <trkpt lat="48.157962799072266" lon="11.425047874450684">
+        <name>129854</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90130</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132309&#xA;      &#xA;      &#xA;        132310&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23027801513672" lon="11.421852111816406">
+        <name>132309</name>
+      </trkpt>
+      <trkpt lat="48.23014450073242" lon="11.42579460144043">
+        <name>132310</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105554</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147106&#xA;      &#xA;      &#xA;        147107&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12407684326172" lon="11.448719024658203">
+        <name>147106</name>
+      </trkpt>
+      <trkpt lat="48.12417221069336" lon="11.447118759155273">
+        <name>147107</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89989</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132178&#xA;      &#xA;      &#xA;        132179&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20583724975586" lon="11.391183853149414">
+        <name>132178</name>
+      </trkpt>
+      <trkpt lat="48.20607376098633" lon="11.39091682434082">
+        <name>132179</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87725</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129983&#xA;      &#xA;      &#xA;        129984&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16288757324219" lon="11.437276840209961">
+        <name>129983</name>
+      </trkpt>
+      <trkpt lat="48.16349792480469" lon="11.437353134155273">
+        <name>129984</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105130</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146678&#xA;      &#xA;      &#xA;        146679&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.196720123291016" lon="11.6783447265625">
+        <name>146678</name>
+      </trkpt>
+      <trkpt lat="48.19567108154297" lon="11.682172775268555">
+        <name>146679</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86735</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129003&#xA;      &#xA;      &#xA;        129006&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.204437255859375" lon="11.451411247253418">
+        <name>129003</name>
+      </trkpt>
+      <trkpt lat="48.20454406738281" lon="11.453527450561523">
+        <name>129006</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87584</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129854&#xA;      &#xA;      &#xA;        129855&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.157962799072266" lon="11.425047874450684">
+        <name>129854</name>
+      </trkpt>
+      <trkpt lat="48.157814025878906" lon="11.425047874450684">
+        <name>129855</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90131</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132310&#xA;      &#xA;      &#xA;        132311&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23014450073242" lon="11.42579460144043">
+        <name>132310</name>
+      </trkpt>
+      <trkpt lat="48.2303352355957" lon="11.43065071105957">
+        <name>132311</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105555</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147107&#xA;      &#xA;      &#xA;        147108&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12417221069336" lon="11.447118759155273">
+        <name>147107</name>
+      </trkpt>
+      <trkpt lat="48.1251220703125" lon="11.447375297546387">
+        <name>147108</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89990</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132179&#xA;      &#xA;      &#xA;        132180&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20607376098633" lon="11.39091682434082">
+        <name>132179</name>
+      </trkpt>
+      <trkpt lat="48.20629119873047" lon="11.390746116638184">
+        <name>132180</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87726</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129984&#xA;      &#xA;      &#xA;        129988&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16349792480469" lon="11.437353134155273">
+        <name>129984</name>
+      </trkpt>
+      <trkpt lat="48.163551330566406" lon="11.439733505249023">
+        <name>129988</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86736</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129006&#xA;      &#xA;      &#xA;        129007&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20454406738281" lon="11.453527450561523">
+        <name>129006</name>
+      </trkpt>
+      <trkpt lat="48.20488739013672" lon="11.456193923950195">
+        <name>129007</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87585</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129855&#xA;      &#xA;      &#xA;        129856&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.157814025878906" lon="11.425047874450684">
+        <name>129855</name>
+      </trkpt>
+      <trkpt lat="48.15774154663086" lon="11.425199508666992">
+        <name>129856</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90132</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132311&#xA;      &#xA;      &#xA;        132312&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2303352355957" lon="11.43065071105957">
+        <name>132311</name>
+      </trkpt>
+      <trkpt lat="48.23075485229492" lon="11.434049606323242">
+        <name>132312</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105556</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147108&#xA;      &#xA;      &#xA;        147109&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1251220703125" lon="11.447375297546387">
+        <name>147108</name>
+      </trkpt>
+      <trkpt lat="48.12527847290039" lon="11.447260856628418">
+        <name>147109</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89991</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132180&#xA;      &#xA;      &#xA;        132181&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20629119873047" lon="11.390746116638184">
+        <name>132180</name>
+      </trkpt>
+      <trkpt lat="48.20662307739258" lon="11.390746116638184">
+        <name>132181</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87727</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129988&#xA;      &#xA;      &#xA;        129987&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.163551330566406" lon="11.439733505249023">
+        <name>129988</name>
+      </trkpt>
+      <trkpt lat="48.16362380981445" lon="11.440876007080078">
+        <name>129987</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86737</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129005&#xA;      &#xA;      &#xA;        129009&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20460510253906" lon="11.451411247253418">
+        <name>129005</name>
+      </trkpt>
+      <trkpt lat="48.204708099365234" lon="11.453545570373535">
+        <name>129009</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87586</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129856&#xA;      &#xA;      &#xA;        129857&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15774154663086" lon="11.425199508666992">
+        <name>129856</name>
+      </trkpt>
+      <trkpt lat="48.15715026855469" lon="11.425485610961914">
+        <name>129857</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90133</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132312&#xA;      &#xA;      &#xA;        132313&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23075485229492" lon="11.434049606323242">
+        <name>132312</name>
+      </trkpt>
+      <trkpt lat="48.23159408569336" lon="11.437734603881836">
+        <name>132313</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105557</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147109&#xA;      &#xA;      &#xA;        147110&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12527847290039" lon="11.447260856628418">
+        <name>147109</name>
+      </trkpt>
+      <trkpt lat="48.125370025634766" lon="11.4467191696167">
+        <name>147110</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89992</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132181&#xA;      &#xA;      &#xA;        132182&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20662307739258" lon="11.390746116638184">
+        <name>132181</name>
+      </trkpt>
+      <trkpt lat="48.206851959228516" lon="11.38701343536377">
+        <name>132182</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87728</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129987&#xA;      &#xA;      &#xA;        129965&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16362380981445" lon="11.440876007080078">
+        <name>129987</name>
+      </trkpt>
+      <trkpt lat="48.163856506347656" lon="11.443180084228516">
+        <name>129965</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86738</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129009&#xA;      &#xA;      &#xA;        129010&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.204708099365234" lon="11.453545570373535">
+        <name>129009</name>
+      </trkpt>
+      <trkpt lat="48.20506286621094" lon="11.456117630004883">
+        <name>129010</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87587</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129857&#xA;      &#xA;      &#xA;        129858&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15715026855469" lon="11.425485610961914">
+        <name>129857</name>
+      </trkpt>
+      <trkpt lat="48.15699768066406" lon="11.424952507019043">
+        <name>129858</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90134</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132313&#xA;      &#xA;      &#xA;        132314&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23159408569336" lon="11.437734603881836">
+        <name>132313</name>
+      </trkpt>
+      <trkpt lat="48.23284912109375" lon="11.441305160522461">
+        <name>132314</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105558</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147110&#xA;      &#xA;      &#xA;        147111&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.125370025634766" lon="11.4467191696167">
+        <name>147110</name>
+      </trkpt>
+      <trkpt lat="48.1252555847168" lon="11.444718360900879">
+        <name>147111</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89993</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132182&#xA;      &#xA;      &#xA;        132183&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.206851959228516" lon="11.38701343536377">
+        <name>132182</name>
+      </trkpt>
+      <trkpt lat="48.206912994384766" lon="11.385563850402832">
+        <name>132183</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87729</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129987&#xA;      &#xA;      &#xA;        129985&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16362380981445" lon="11.440876007080078">
+        <name>129987</name>
+      </trkpt>
+      <trkpt lat="48.16291427612305" lon="11.441009521484375">
+        <name>129985</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105502</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147053&#xA;      &#xA;      &#xA;        147054&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11228942871094" lon="11.568950653076172">
+        <name>147053</name>
+      </trkpt>
+      <trkpt lat="48.112693786621094" lon="11.567808151245117">
+        <name>147054</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87788</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130039&#xA;      &#xA;      &#xA;        129853&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1588249206543" lon="11.424487113952637">
+        <name>130039</name>
+      </trkpt>
+      <trkpt lat="48.15824508666992" lon="11.42487621307373">
+        <name>129853</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86746</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129016&#xA;      &#xA;      &#xA;        129017&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2098388671875" lon="11.468038558959961">
+        <name>129016</name>
+      </trkpt>
+      <trkpt lat="48.20991134643555" lon="11.47098159790039">
+        <name>129017</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90133</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132312&#xA;      &#xA;      &#xA;        132313&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23075485229492" lon="11.434049606323242">
+        <name>132312</name>
+      </trkpt>
+      <trkpt lat="48.23159408569336" lon="11.437734603881836">
+        <name>132313</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96906</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138571&#xA;      &#xA;      &#xA;        138572&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31795883178711" lon="11.62561321258545">
+        <name>138571</name>
+      </trkpt>
+      <trkpt lat="48.31841278076172" lon="11.626470565795898">
+        <name>138572</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85965</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128287&#xA;      &#xA;      &#xA;        128288&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1555061340332" lon="11.422523498535156">
+        <name>128287</name>
+      </trkpt>
+      <trkpt lat="48.155555725097656" lon="11.42264175415039">
+        <name>128288</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105503</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147054&#xA;      &#xA;      &#xA;        147055&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.112693786621094" lon="11.567808151245117">
+        <name>147054</name>
+      </trkpt>
+      <trkpt lat="48.11292266845703" lon="11.566207885742188">
+        <name>147055</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87789</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130039&#xA;      &#xA;      &#xA;        130038&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1588249206543" lon="11.424487113952637">
+        <name>130039</name>
+      </trkpt>
+      <trkpt lat="48.158226013183594" lon="11.421916007995605">
+        <name>130038</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86747</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129013&#xA;      &#xA;      &#xA;        129018&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20819854736328" lon="11.461540222167969">
+        <name>129013</name>
+      </trkpt>
+      <trkpt lat="48.20880889892578" lon="11.4639253616333">
+        <name>129018</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90134</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132313&#xA;      &#xA;      &#xA;        132314&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23159408569336" lon="11.437734603881836">
+        <name>132313</name>
+      </trkpt>
+      <trkpt lat="48.23284912109375" lon="11.441305160522461">
+        <name>132314</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96907</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138572&#xA;      &#xA;      &#xA;        138573&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31841278076172" lon="11.626470565795898">
+        <name>138572</name>
+      </trkpt>
+      <trkpt lat="48.31913757324219" lon="11.6273832321167">
+        <name>138573</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105243</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146797&#xA;      &#xA;      &#xA;        146800&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.07872009277344" lon="11.734161376953125">
+        <name>146797</name>
+      </trkpt>
+      <trkpt lat="48.07621765136719" lon="11.731133460998535">
+        <name>146800</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85966</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128288&#xA;      &#xA;      &#xA;        128289&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155555725097656" lon="11.42264175415039">
+        <name>128288</name>
+      </trkpt>
+      <trkpt lat="48.15562057495117" lon="11.422557830810547">
+        <name>128289</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105504</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147055&#xA;      &#xA;      &#xA;        147056&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11292266845703" lon="11.566207885742188">
+        <name>147055</name>
+      </trkpt>
+      <trkpt lat="48.11301803588867" lon="11.564323425292969">
+        <name>147056</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87790</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130038&#xA;      &#xA;      &#xA;        130037&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.158226013183594" lon="11.421916007995605">
+        <name>130038</name>
+      </trkpt>
+      <trkpt lat="48.15766525268555" lon="11.419611930847168">
+        <name>130037</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86748</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129018&#xA;      &#xA;      &#xA;        129019&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20880889892578" lon="11.4639253616333">
+        <name>129018</name>
+      </trkpt>
+      <trkpt lat="48.20945739746094" lon="11.466724395751953">
+        <name>129019</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96908</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138573&#xA;      &#xA;      &#xA;        138574&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31913757324219" lon="11.6273832321167">
+        <name>138573</name>
+      </trkpt>
+      <trkpt lat="48.31965255737305" lon="11.628297805786133">
+        <name>138574</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85967</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128289&#xA;      &#xA;      &#xA;        128286&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15562057495117" lon="11.422557830810547">
+        <name>128289</name>
+      </trkpt>
+      <trkpt lat="48.155582427978516" lon="11.422438621520996">
+        <name>128286</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90135</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132314&#xA;      &#xA;      &#xA;        132315&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23284912109375" lon="11.441305160522461">
+        <name>132314</name>
+      </trkpt>
+      <trkpt lat="48.23427200317383" lon="11.444162368774414">
+        <name>132315</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105505</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147056&#xA;      &#xA;      &#xA;        147057&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11301803588867" lon="11.564323425292969">
+        <name>147056</name>
+      </trkpt>
+      <trkpt lat="48.11289978027344" lon="11.562723159790039">
+        <name>147057</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87791</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130038&#xA;      &#xA;      &#xA;        130033&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.158226013183594" lon="11.421916007995605">
+        <name>130038</name>
+      </trkpt>
+      <trkpt lat="48.157161712646484" lon="11.422430038452148">
+        <name>130033</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86749</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129019&#xA;      &#xA;      &#xA;        129020&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20945739746094" lon="11.466724395751953">
+        <name>129019</name>
+      </trkpt>
+      <trkpt lat="48.209625244140625" lon="11.468353271484375">
+        <name>129020</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96909</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138574&#xA;      &#xA;      &#xA;        138575&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31965255737305" lon="11.628297805786133">
+        <name>138574</name>
+      </trkpt>
+      <trkpt lat="48.32056427001953" lon="11.630183219909668">
+        <name>138575</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85968</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127357&#xA;      &#xA;      &#xA;        128290&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20293426513672" lon="11.301790237426758">
+        <name>127357</name>
+      </trkpt>
+      <trkpt lat="48.202476501464844" lon="11.301801681518555">
+        <name>128290</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90136</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132315&#xA;      &#xA;      &#xA;        132316&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23427200317383" lon="11.444162368774414">
+        <name>132315</name>
+      </trkpt>
+      <trkpt lat="48.2356071472168" lon="11.446189880371094">
+        <name>132316</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105506</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147057&#xA;      &#xA;      &#xA;        147058&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11289978027344" lon="11.562723159790039">
+        <name>147057</name>
+      </trkpt>
+      <trkpt lat="48.11261749267578" lon="11.560724258422852">
+        <name>147058</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87792</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130033&#xA;      &#xA;      &#xA;        130032&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.157161712646484" lon="11.422430038452148">
+        <name>130033</name>
+      </trkpt>
+      <trkpt lat="48.15654754638672" lon="11.422792434692383">
+        <name>130032</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86750</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129020&#xA;      &#xA;      &#xA;        129021&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.209625244140625" lon="11.468353271484375">
+        <name>129020</name>
+      </trkpt>
+      <trkpt lat="48.20966339111328" lon="11.47098159790039">
+        <name>129021</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96910</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138575&#xA;      &#xA;      &#xA;        138576&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.32056427001953" lon="11.630183219909668">
+        <name>138575</name>
+      </trkpt>
+      <trkpt lat="48.32084655761719" lon="11.630840301513672">
+        <name>138576</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85969</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128290&#xA;      &#xA;      &#xA;        128291&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.202476501464844" lon="11.301801681518555">
+        <name>128290</name>
+      </trkpt>
+      <trkpt lat="48.20134735107422" lon="11.300172805786133">
+        <name>128291</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90137</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132316&#xA;      &#xA;      &#xA;        132317&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2356071472168" lon="11.446189880371094">
+        <name>132316</name>
+      </trkpt>
+      <trkpt lat="48.23741149902344" lon="11.448446273803711">
+        <name>132317</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105507</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147058&#xA;      &#xA;      &#xA;        147059&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11261749267578" lon="11.560724258422852">
+        <name>147058</name>
+      </trkpt>
+      <trkpt lat="48.11234664916992" lon="11.558324813842773">
+        <name>147059</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87793</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130033&#xA;      &#xA;      &#xA;        130034&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.157161712646484" lon="11.422430038452148">
+        <name>130033</name>
+      </trkpt>
+      <trkpt lat="48.15665054321289" lon="11.420639991760254">
+        <name>130034</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86751</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129021&#xA;      &#xA;      &#xA;        129022&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20966339111328" lon="11.47098159790039">
+        <name>129021</name>
+      </trkpt>
+      <trkpt lat="48.209686279296875" lon="11.475935935974121">
+        <name>129022</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96911</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138576&#xA;      &#xA;      &#xA;        138577&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.32084655761719" lon="11.630840301513672">
+        <name>138576</name>
+      </trkpt>
+      <trkpt lat="48.3208122253418" lon="11.631697654724121">
+        <name>138577</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85970</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127358&#xA;      &#xA;      &#xA;        128290&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2028923034668" lon="11.302361488342285">
+        <name>127358</name>
+      </trkpt>
+      <trkpt lat="48.202476501464844" lon="11.301801681518555">
+        <name>128290</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90138</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132317&#xA;      &#xA;      &#xA;        132318&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23741149902344" lon="11.448446273803711">
+        <name>132317</name>
+      </trkpt>
+      <trkpt lat="48.239315032958984" lon="11.450504302978516">
+        <name>132318</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105508</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147059&#xA;      &#xA;      &#xA;        147060&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11234664916992" lon="11.558324813842773">
+        <name>147059</name>
+      </trkpt>
+      <trkpt lat="48.11223602294922" lon="11.55681037902832">
+        <name>147060</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87794</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130034&#xA;      &#xA;      &#xA;        130035&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15665054321289" lon="11.420639991760254">
+        <name>130034</name>
+      </trkpt>
+      <trkpt lat="48.15665054321289" lon="11.420392036437988">
+        <name>130035</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86752</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129022&#xA;      &#xA;      &#xA;        129024&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.209686279296875" lon="11.475935935974121">
+        <name>129022</name>
+      </trkpt>
+      <trkpt lat="48.209571838378906" lon="11.478721618652344">
+        <name>129024</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96912</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138577&#xA;      &#xA;      &#xA;        138578&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.3208122253418" lon="11.631697654724121">
+        <name>138577</name>
+      </trkpt>
+      <trkpt lat="48.32024002075195" lon="11.632183074951172">
+        <name>138578</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90139</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132318&#xA;      &#xA;      &#xA;        132319&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.239315032958984" lon="11.450504302978516">
+        <name>132318</name>
+      </trkpt>
+      <trkpt lat="48.24026870727539" lon="11.451703071594238">
+        <name>132319</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105509</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147060&#xA;      &#xA;      &#xA;        147061&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11223602294922" lon="11.55681037902832">
+        <name>147060</name>
+      </trkpt>
+      <trkpt lat="48.11228942871094" lon="11.554667472839355">
+        <name>147061</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87795</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130035&#xA;      &#xA;      &#xA;        130036&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15665054321289" lon="11.420392036437988">
+        <name>130035</name>
+      </trkpt>
+      <trkpt lat="48.156776428222656" lon="11.42016315460205">
+        <name>130036</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86753</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129024&#xA;      &#xA;      &#xA;        129025&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.209571838378906" lon="11.478721618652344">
+        <name>129024</name>
+      </trkpt>
+      <trkpt lat="48.20926284790039" lon="11.481378555297852">
+        <name>129025</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96913</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138578&#xA;      &#xA;      &#xA;        138579&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.32024002075195" lon="11.632183074951172">
+        <name>138578</name>
+      </trkpt>
+      <trkpt lat="48.319366455078125" lon="11.632040023803711">
+        <name>138579</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90140</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132319&#xA;      &#xA;      &#xA;        132320&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24026870727539" lon="11.451703071594238">
+        <name>132319</name>
+      </trkpt>
+      <trkpt lat="48.24140930175781" lon="11.453845977783203">
+        <name>132320</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105510</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147061&#xA;      &#xA;      &#xA;        147062&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11228942871094" lon="11.554667472839355">
+        <name>147061</name>
+      </trkpt>
+      <trkpt lat="48.1119499206543" lon="11.545069694519043">
+        <name>147062</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87796</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130036&#xA;      &#xA;      &#xA;        130037&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.156776428222656" lon="11.42016315460205">
+        <name>130036</name>
+      </trkpt>
+      <trkpt lat="48.15766525268555" lon="11.419611930847168">
+        <name>130037</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86754</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129025&#xA;      &#xA;      &#xA;        129026&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20926284790039" lon="11.481378555297852">
+        <name>129025</name>
+      </trkpt>
+      <trkpt lat="48.20903396606445" lon="11.483692169189453">
+        <name>129026</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96914</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138579&#xA;      &#xA;      &#xA;        138580&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.319366455078125" lon="11.632040023803711">
+        <name>138579</name>
+      </trkpt>
+      <trkpt lat="48.318115234375" lon="11.632383346557617">
+        <name>138580</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85973</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128293&#xA;      &#xA;      &#xA;        128294&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19818878173828" lon="11.296602249145508">
+        <name>128293</name>
+      </trkpt>
+      <trkpt lat="48.196895599365234" lon="11.295431137084961">
+        <name>128294</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>84931</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127287&#xA;      &#xA;      &#xA;        127288&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.217811584472656" lon="11.328259468078613">
+        <name>127287</name>
+      </trkpt>
+      <trkpt lat="48.217864990234375" lon="11.328107833862305">
+        <name>127288</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90141</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132320&#xA;      &#xA;      &#xA;        132321&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24140930175781" lon="11.453845977783203">
+        <name>132320</name>
+      </trkpt>
+      <trkpt lat="48.24211120605469" lon="11.456016540527344">
+        <name>132321</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105511</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147062&#xA;      &#xA;      &#xA;        147063&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1119499206543" lon="11.545069694519043">
+        <name>147062</name>
+      </trkpt>
+      <trkpt lat="48.11146926879883" lon="11.5432710647583">
+        <name>147063</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87797</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130037&#xA;      &#xA;      &#xA;        130040&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15766525268555" lon="11.419611930847168">
+        <name>130037</name>
+      </trkpt>
+      <trkpt lat="48.15742874145508" lon="11.41877269744873">
+        <name>130040</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86755</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129017&#xA;      &#xA;      &#xA;        129023&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20991134643555" lon="11.47098159790039">
+        <name>129017</name>
+      </trkpt>
+      <trkpt lat="48.209930419921875" lon="11.475778579711914">
+        <name>129023</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96915</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138580&#xA;      &#xA;      &#xA;        138581&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.318115234375" lon="11.632383346557617">
+        <name>138580</name>
+      </trkpt>
+      <trkpt lat="48.31605911254883" lon="11.63364028930664">
+        <name>138581</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105251</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146800&#xA;      &#xA;      &#xA;        146802&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.07621765136719" lon="11.731133460998535">
+        <name>146800</name>
+      </trkpt>
+      <trkpt lat="48.07337951660156" lon="11.727334022521973">
+        <name>146802</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85974</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128294&#xA;      &#xA;      &#xA;        128295&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.196895599365234" lon="11.295431137084961">
+        <name>128294</name>
+      </trkpt>
+      <trkpt lat="48.19609451293945" lon="11.294516563415527">
+        <name>128295</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>84932</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127283&#xA;      &#xA;      &#xA;        127288&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.217735290527344" lon="11.328062057495117">
+        <name>127283</name>
+      </trkpt>
+      <trkpt lat="48.217864990234375" lon="11.328107833862305">
+        <name>127288</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90142</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132321&#xA;      &#xA;      &#xA;        132322&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24211120605469" lon="11.456016540527344">
+        <name>132321</name>
+      </trkpt>
+      <trkpt lat="48.24245071411133" lon="11.458816528320312">
+        <name>132322</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105512</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147063&#xA;      &#xA;      &#xA;        147064&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11146926879883" lon="11.5432710647583">
+        <name>147063</name>
+      </trkpt>
+      <trkpt lat="48.111148834228516" lon="11.542670249938965">
+        <name>147064</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87798</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130040&#xA;      &#xA;      &#xA;        130041&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15742874145508" lon="11.41877269744873">
+        <name>130040</name>
+      </trkpt>
+      <trkpt lat="48.158077239990234" lon="11.41846752166748">
+        <name>130041</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86756</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129023&#xA;      &#xA;      &#xA;        129027&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.209930419921875" lon="11.475778579711914">
+        <name>129023</name>
+      </trkpt>
+      <trkpt lat="48.20979690551758" lon="11.478750228881836">
+        <name>129027</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96916</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138581&#xA;      &#xA;      &#xA;        138582&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31605911254883" lon="11.63364028930664">
+        <name>138581</name>
+      </trkpt>
+      <trkpt lat="48.31345748901367" lon="11.635152816772461">
+        <name>138582</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105252</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146802&#xA;      &#xA;      &#xA;        146803&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.07337951660156" lon="11.727334022521973">
+        <name>146802</name>
+      </trkpt>
+      <trkpt lat="48.0706672668457" lon="11.723506927490234">
+        <name>146803</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85975</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128295&#xA;      &#xA;      &#xA;        128296&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19609451293945" lon="11.294516563415527">
+        <name>128295</name>
+      </trkpt>
+      <trkpt lat="48.195220947265625" lon="11.293146133422852">
+        <name>128296</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>84933</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127283&#xA;      &#xA;      &#xA;        127289&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.217735290527344" lon="11.328062057495117">
+        <name>127283</name>
+      </trkpt>
+      <trkpt lat="48.21772766113281" lon="11.32823371887207">
+        <name>127289</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90143</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132322&#xA;      &#xA;      &#xA;        132323&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24245071411133" lon="11.458816528320312">
+        <name>132322</name>
+      </trkpt>
+      <trkpt lat="48.242431640625" lon="11.462272644042969">
+        <name>132323</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105513</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147064&#xA;      &#xA;      &#xA;        147065&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.111148834228516" lon="11.542670249938965">
+        <name>147064</name>
+      </trkpt>
+      <trkpt lat="48.11083984375" lon="11.541899681091309">
+        <name>147065</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87799</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130041&#xA;      &#xA;      &#xA;        130042&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.158077239990234" lon="11.41846752166748">
+        <name>130041</name>
+      </trkpt>
+      <trkpt lat="48.15846633911133" lon="11.41837215423584">
+        <name>130042</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86757</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129027&#xA;      &#xA;      &#xA;        129028&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20979690551758" lon="11.478750228881836">
+        <name>129027</name>
+      </trkpt>
+      <trkpt lat="48.20951461791992" lon="11.481093406677246">
+        <name>129028</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96917</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138582&#xA;      &#xA;      &#xA;        138583&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31345748901367" lon="11.635152816772461">
+        <name>138582</name>
+      </trkpt>
+      <trkpt lat="48.31057357788086" lon="11.637066841125488">
+        <name>138583</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85976</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128296&#xA;      &#xA;      &#xA;        128297&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.195220947265625" lon="11.293146133422852">
+        <name>128296</name>
+      </trkpt>
+      <trkpt lat="48.19451904296875" lon="11.291545867919922">
+        <name>128297</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>84934</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127289&#xA;      &#xA;      &#xA;        127287&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21772766113281" lon="11.32823371887207">
+        <name>127289</name>
+      </trkpt>
+      <trkpt lat="48.217811584472656" lon="11.328259468078613">
+        <name>127287</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90144</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132323&#xA;      &#xA;      &#xA;        132324&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.242431640625" lon="11.462272644042969">
+        <name>132323</name>
+      </trkpt>
+      <trkpt lat="48.24235534667969" lon="11.466129302978516">
+        <name>132324</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105514</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147065&#xA;      &#xA;      &#xA;        147066&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11083984375" lon="11.541899681091309">
+        <name>147065</name>
+      </trkpt>
+      <trkpt lat="48.11063003540039" lon="11.540756225585938">
+        <name>147066</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87800</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130042&#xA;      &#xA;      &#xA;        130043&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15846633911133" lon="11.41837215423584">
+        <name>130042</name>
+      </trkpt>
+      <trkpt lat="48.159603118896484" lon="11.417915344238281">
+        <name>130043</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86758</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129028&#xA;      &#xA;      &#xA;        129029&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20951461791992" lon="11.481093406677246">
+        <name>129028</name>
+      </trkpt>
+      <trkpt lat="48.209285736083984" lon="11.48303508758545">
+        <name>129029</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96918</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138583&#xA;      &#xA;      &#xA;        138584&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31057357788086" lon="11.637066841125488">
+        <name>138583</name>
+      </trkpt>
+      <trkpt lat="48.30855178833008" lon="11.638410568237305">
+        <name>138584</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85977</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128297&#xA;      &#xA;      &#xA;        128298&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19451904296875" lon="11.291545867919922">
+        <name>128297</name>
+      </trkpt>
+      <trkpt lat="48.19400405883789" lon="11.289803504943848">
+        <name>128298</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>84935</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127283&#xA;      &#xA;      &#xA;        127290&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.217735290527344" lon="11.328062057495117">
+        <name>127283</name>
+      </trkpt>
+      <trkpt lat="48.21672821044922" lon="11.325291633605957">
+        <name>127290</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90145</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132324&#xA;      &#xA;      &#xA;        132325&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24235534667969" lon="11.466129302978516">
+        <name>132324</name>
+      </trkpt>
+      <trkpt lat="48.242488861083984" lon="11.468157768249512">
+        <name>132325</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105515</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147066&#xA;      &#xA;      &#xA;        147067&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11063003540039" lon="11.540756225585938">
+        <name>147066</name>
+      </trkpt>
+      <trkpt lat="48.11061096191406" lon="11.53869915008545">
+        <name>147067</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87801</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130043&#xA;      &#xA;      &#xA;        130044&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.159603118896484" lon="11.417915344238281">
+        <name>130043</name>
+      </trkpt>
+      <trkpt lat="48.16012191772461" lon="11.42037296295166">
+        <name>130044</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86759</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129026&#xA;      &#xA;      &#xA;        129030&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20903396606445" lon="11.483692169189453">
+        <name>129026</name>
+      </trkpt>
+      <trkpt lat="48.20897674560547" lon="11.486090660095215">
+        <name>129030</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96919</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138584&#xA;      &#xA;      &#xA;        138585&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.30855178833008" lon="11.638410568237305">
+        <name>138584</name>
+      </trkpt>
+      <trkpt lat="48.307376861572266" lon="11.639181137084961">
+        <name>138585</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85978</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128298&#xA;      &#xA;      &#xA;        128299&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19400405883789" lon="11.289803504943848">
+        <name>128298</name>
+      </trkpt>
+      <trkpt lat="48.193599700927734" lon="11.287604331970215">
+        <name>128299</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>84936</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127290&#xA;      &#xA;      &#xA;        127291&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21672821044922" lon="11.325291633605957">
+        <name>127290</name>
+      </trkpt>
+      <trkpt lat="48.216129302978516" lon="11.32386302947998">
+        <name>127291</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90146</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132325&#xA;      &#xA;      &#xA;        132326&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.242488861083984" lon="11.468157768249512">
+        <name>132325</name>
+      </trkpt>
+      <trkpt lat="48.242977142333984" lon="11.470528602600098">
+        <name>132326</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105516</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147067&#xA;      &#xA;      &#xA;        147068&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11061096191406" lon="11.53869915008545">
+        <name>147067</name>
+      </trkpt>
+      <trkpt lat="48.110595703125" lon="11.5352144241333">
+        <name>147068</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87802</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130044&#xA;      &#xA;      &#xA;        130045&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16012191772461" lon="11.42037296295166">
+        <name>130044</name>
+      </trkpt>
+      <trkpt lat="48.16059112548828" lon="11.420144081115723">
+        <name>130045</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86760</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129030&#xA;      &#xA;      &#xA;        129031&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20897674560547" lon="11.486090660095215">
+        <name>129030</name>
+      </trkpt>
+      <trkpt lat="48.209205627441406" lon="11.489204406738281">
+        <name>129031</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96920</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138585&#xA;      &#xA;      &#xA;        138586&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.307376861572266" lon="11.639181137084961">
+        <name>138585</name>
+      </trkpt>
+      <trkpt lat="48.30490493774414" lon="11.641324043273926">
+        <name>138586</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105256</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146803&#xA;      &#xA;      &#xA;        146810&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.0706672668457" lon="11.723506927490234">
+        <name>146803</name>
+      </trkpt>
+      <trkpt lat="48.0682487487793" lon="11.719535827636719">
+        <name>146810</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85979</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128299&#xA;      &#xA;      &#xA;        128300&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.193599700927734" lon="11.287604331970215">
+        <name>128299</name>
+      </trkpt>
+      <trkpt lat="48.19340896606445" lon="11.285318374633789">
+        <name>128300</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>84937</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127291&#xA;      &#xA;      &#xA;        127292&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.216129302978516" lon="11.32386302947998">
+        <name>127291</name>
+      </trkpt>
+      <trkpt lat="48.21546936035156" lon="11.32281494140625">
+        <name>127292</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90147</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132326&#xA;      &#xA;      &#xA;        132327&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.242977142333984" lon="11.470528602600098">
+        <name>132326</name>
+      </trkpt>
+      <trkpt lat="48.24374008178711" lon="11.472557067871094">
+        <name>132327</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105517</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147068&#xA;      &#xA;      &#xA;        147069&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.110595703125" lon="11.5352144241333">
+        <name>147068</name>
+      </trkpt>
+      <trkpt lat="48.110538482666016" lon="11.533586502075195">
+        <name>147069</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87803</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130045&#xA;      &#xA;      &#xA;        130046&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16059112548828" lon="11.420144081115723">
+        <name>130045</name>
+      </trkpt>
+      <trkpt lat="48.16008758544922" lon="11.417743682861328">
+        <name>130046</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86761</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129031&#xA;      &#xA;      &#xA;        129032&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.209205627441406" lon="11.489204406738281">
+        <name>129031</name>
+      </trkpt>
+      <trkpt lat="48.209739685058594" lon="11.492204666137695">
+        <name>129032</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96921</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138586&#xA;      &#xA;      &#xA;        138587&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.30490493774414" lon="11.641324043273926">
+        <name>138586</name>
+      </trkpt>
+      <trkpt lat="48.30608367919922" lon="11.643922805786133">
+        <name>138587</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87543</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128959&#xA;      &#xA;      &#xA;        129814&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17397689819336" lon="11.426778793334961">
+        <name>128959</name>
+      </trkpt>
+      <trkpt lat="48.173858642578125" lon="11.428360939025879">
+        <name>129814</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85980</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128300&#xA;      &#xA;      &#xA;        128301&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19340896606445" lon="11.285318374633789">
+        <name>128300</name>
+      </trkpt>
+      <trkpt lat="48.19329833984375" lon="11.282690048217773">
+        <name>128301</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90148</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132327&#xA;      &#xA;      &#xA;        132328&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24374008178711" lon="11.472557067871094">
+        <name>132327</name>
+      </trkpt>
+      <trkpt lat="48.244598388671875" lon="11.474013328552246">
+        <name>132328</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105518</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147069&#xA;      &#xA;      &#xA;        147070&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.110538482666016" lon="11.533586502075195">
+        <name>147069</name>
+      </trkpt>
+      <trkpt lat="48.110382080078125" lon="11.531702041625977">
+        <name>147070</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87804</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130046&#xA;      &#xA;      &#xA;        130043&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16008758544922" lon="11.417743682861328">
+        <name>130046</name>
+      </trkpt>
+      <trkpt lat="48.159603118896484" lon="11.417915344238281">
+        <name>130043</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86762</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129032&#xA;      &#xA;      &#xA;        129033&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.209739685058594" lon="11.492204666137695">
+        <name>129032</name>
+      </trkpt>
+      <trkpt lat="48.21046829223633" lon="11.49468994140625">
+        <name>129033</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96922</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138587&#xA;      &#xA;      &#xA;        138588&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.30608367919922" lon="11.643922805786133">
+        <name>138587</name>
+      </trkpt>
+      <trkpt lat="48.30683898925781" lon="11.64583683013916">
+        <name>138588</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87544</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129814&#xA;      &#xA;      &#xA;        129815&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.173858642578125" lon="11.428360939025879">
+        <name>129814</name>
+      </trkpt>
+      <trkpt lat="48.173858642578125" lon="11.429275512695312">
+        <name>129815</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85981</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128301&#xA;      &#xA;      &#xA;        128302&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19329833984375" lon="11.282690048217773">
+        <name>128301</name>
+      </trkpt>
+      <trkpt lat="48.193145751953125" lon="11.280890464782715">
+        <name>128302</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90149</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132328&#xA;      &#xA;      &#xA;        132329&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.244598388671875" lon="11.474013328552246">
+        <name>132328</name>
+      </trkpt>
+      <trkpt lat="48.24520492553711" lon="11.474727630615234">
+        <name>132329</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105519</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147070&#xA;      &#xA;      &#xA;        147071&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.110382080078125" lon="11.531702041625977">
+        <name>147070</name>
+      </trkpt>
+      <trkpt lat="48.11006546020508" lon="11.529173851013184">
+        <name>147071</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87805</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130046&#xA;      &#xA;      &#xA;        130047&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16008758544922" lon="11.417743682861328">
+        <name>130046</name>
+      </trkpt>
+      <trkpt lat="48.1600341796875" lon="11.417057991027832">
+        <name>130047</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86763</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129033&#xA;      &#xA;      &#xA;        129034&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21046829223633" lon="11.49468994140625">
+        <name>129033</name>
+      </trkpt>
+      <trkpt lat="48.21126174926758" lon="11.49671745300293">
+        <name>129034</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96923</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138588&#xA;      &#xA;      &#xA;        138589&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.30683898925781" lon="11.64583683013916">
+        <name>138588</name>
+      </trkpt>
+      <trkpt lat="48.30826950073242" lon="11.649323463439941">
+        <name>138589</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105259</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146810&#xA;      &#xA;      &#xA;        146811&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.0682487487793" lon="11.719535827636719">
+        <name>146810</name>
+      </trkpt>
+      <trkpt lat="48.065921783447266" lon="11.715365409851074">
+        <name>146811</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87545</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129815&#xA;      &#xA;      &#xA;        129816&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.173858642578125" lon="11.429275512695312">
+        <name>129815</name>
+      </trkpt>
+      <trkpt lat="48.173858642578125" lon="11.4298095703125">
+        <name>129816</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85982</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128302&#xA;      &#xA;      &#xA;        128303&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.193145751953125" lon="11.280890464782715">
+        <name>128302</name>
+      </trkpt>
+      <trkpt lat="48.19266891479492" lon="11.278377532958984">
+        <name>128303</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90150</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132328&#xA;      &#xA;      &#xA;        132330&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.244598388671875" lon="11.474013328552246">
+        <name>132328</name>
+      </trkpt>
+      <trkpt lat="48.245033264160156" lon="11.47492790222168">
+        <name>132330</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105520</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147071&#xA;      &#xA;      &#xA;        147072&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11006546020508" lon="11.529173851013184">
+        <name>147071</name>
+      </trkpt>
+      <trkpt lat="48.109954833984375" lon="11.527202606201172">
+        <name>147072</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87806</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130047&#xA;      &#xA;      &#xA;        130048&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1600341796875" lon="11.417057991027832">
+        <name>130047</name>
+      </trkpt>
+      <trkpt lat="48.16006088256836" lon="11.415363311767578">
+        <name>130048</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86764</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129029&#xA;      &#xA;      &#xA;        129035&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.209285736083984" lon="11.48303508758545">
+        <name>129029</name>
+      </trkpt>
+      <trkpt lat="48.209190368652344" lon="11.486063003540039">
+        <name>129035</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96924</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138589&#xA;      &#xA;      &#xA;        138590&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.30826950073242" lon="11.649323463439941">
+        <name>138589</name>
+      </trkpt>
+      <trkpt lat="48.30959701538086" lon="11.652636528015137">
+        <name>138590</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87546</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129816&#xA;      &#xA;      &#xA;        129817&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.173858642578125" lon="11.4298095703125">
+        <name>129816</name>
+      </trkpt>
+      <trkpt lat="48.17356491088867" lon="11.42984676361084">
+        <name>129817</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85983</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128303&#xA;      &#xA;      &#xA;        128304&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19266891479492" lon="11.278377532958984">
+        <name>128303</name>
+      </trkpt>
+      <trkpt lat="48.19223403930664" lon="11.276606559753418">
+        <name>128304</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90151</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132329&#xA;      &#xA;      &#xA;        132330&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24520492553711" lon="11.474727630615234">
+        <name>132329</name>
+      </trkpt>
+      <trkpt lat="48.245033264160156" lon="11.47492790222168">
+        <name>132330</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105521</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147072&#xA;      &#xA;      &#xA;        147073&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.109954833984375" lon="11.527202606201172">
+        <name>147072</name>
+      </trkpt>
+      <trkpt lat="48.109981536865234" lon="11.520133018493652">
+        <name>147073</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87807</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130048&#xA;      &#xA;      &#xA;        128270&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16006088256836" lon="11.415363311767578">
+        <name>130048</name>
+      </trkpt>
+      <trkpt lat="48.15998077392578" lon="11.415048599243164">
+        <name>128270</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86765</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129035&#xA;      &#xA;      &#xA;        129036&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.209190368652344" lon="11.486063003540039">
+        <name>129035</name>
+      </trkpt>
+      <trkpt lat="48.20945739746094" lon="11.489090919494629">
+        <name>129036</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105000</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130114&#xA;      &#xA;      &#xA;        146550&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20856475830078" lon="11.390711784362793">
+        <name>130114</name>
+      </trkpt>
+      <trkpt lat="48.20722198486328" lon="11.393383979797363">
+        <name>146550</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96925</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138590&#xA;      &#xA;      &#xA;        138591&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.30959701538086" lon="11.652636528015137">
+        <name>138590</name>
+      </trkpt>
+      <trkpt lat="48.31013107299805" lon="11.654122352600098">
+        <name>138591</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105261</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146811&#xA;      &#xA;      &#xA;        146812&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.065921783447266" lon="11.715365409851074">
+        <name>146811</name>
+      </trkpt>
+      <trkpt lat="48.0638427734375" lon="11.711166381835938">
+        <name>146812</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87547</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129817&#xA;      &#xA;      &#xA;        129818&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17356491088867" lon="11.42984676361084">
+        <name>129817</name>
+      </trkpt>
+      <trkpt lat="48.173336029052734" lon="11.430018424987793">
+        <name>129818</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85984</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128304&#xA;      &#xA;      &#xA;        128305&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19223403930664" lon="11.276606559753418">
+        <name>128304</name>
+      </trkpt>
+      <trkpt lat="48.19164276123047" lon="11.274662971496582">
+        <name>128305</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>84942</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127296&#xA;      &#xA;      &#xA;        127297&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21146011352539" lon="11.317453384399414">
+        <name>127296</name>
+      </trkpt>
+      <trkpt lat="48.20945739746094" lon="11.31554889678955">
+        <name>127297</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90152</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132330&#xA;      &#xA;      &#xA;        132331&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.245033264160156" lon="11.47492790222168">
+        <name>132330</name>
+      </trkpt>
+      <trkpt lat="48.244842529296875" lon="11.47567081451416">
+        <name>132331</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105522</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147073&#xA;      &#xA;      &#xA;        147074&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.109981536865234" lon="11.520133018493652">
+        <name>147073</name>
+      </trkpt>
+      <trkpt lat="48.11006546020508" lon="11.519404411315918">
+        <name>147074</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87808</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130045&#xA;      &#xA;      &#xA;        129848&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16059112548828" lon="11.420144081115723">
+        <name>130045</name>
+      </trkpt>
+      <trkpt lat="48.16140365600586" lon="11.423238754272461">
+        <name>129848</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86766</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129036&#xA;      &#xA;      &#xA;        129037&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20945739746094" lon="11.489090919494629">
+        <name>129036</name>
+      </trkpt>
+      <trkpt lat="48.2099494934082" lon="11.491890907287598">
+        <name>129037</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105001</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146550&#xA;      &#xA;      &#xA;        146551&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20722198486328" lon="11.393383979797363">
+        <name>146550</name>
+      </trkpt>
+      <trkpt lat="48.206764221191406" lon="11.395126342773438">
+        <name>146551</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96926</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138591&#xA;      &#xA;      &#xA;        138592&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31013107299805" lon="11.654122352600098">
+        <name>138591</name>
+      </trkpt>
+      <trkpt lat="48.31098175048828" lon="11.657292366027832">
+        <name>138592</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87548</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129818&#xA;      &#xA;      &#xA;        129819&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.173336029052734" lon="11.430018424987793">
+        <name>129818</name>
+      </trkpt>
+      <trkpt lat="48.17258834838867" lon="11.43079948425293">
+        <name>129819</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85985</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128305&#xA;      &#xA;      &#xA;        128306&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19164276123047" lon="11.274662971496582">
+        <name>128305</name>
+      </trkpt>
+      <trkpt lat="48.190921783447266" lon="11.272363662719727">
+        <name>128306</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>84943</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127297&#xA;      &#xA;      &#xA;        127298&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20945739746094" lon="11.31554889678955">
+        <name>127297</name>
+      </trkpt>
+      <trkpt lat="48.20848846435547" lon="11.314520835876465">
+        <name>127298</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90153</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132331&#xA;      &#xA;      &#xA;        132333&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.244842529296875" lon="11.47567081451416">
+        <name>132331</name>
+      </trkpt>
+      <trkpt lat="48.2448844909668" lon="11.476212501525879">
+        <name>132333</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105523</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147074&#xA;      &#xA;      &#xA;        147075&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11006546020508" lon="11.519404411315918">
+        <name>147074</name>
+      </trkpt>
+      <trkpt lat="48.11186599731445" lon="11.517218589782715">
+        <name>147075</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87809</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128269&#xA;      &#xA;      &#xA;        130049&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16022491455078" lon="11.414629936218262">
+        <name>128269</name>
+      </trkpt>
+      <trkpt lat="48.15990447998047" lon="11.41465950012207">
+        <name>130049</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86767</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129037&#xA;      &#xA;      &#xA;        129038&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2099494934082" lon="11.491890907287598">
+        <name>129037</name>
+      </trkpt>
+      <trkpt lat="48.210693359375" lon="11.494518280029297">
+        <name>129038</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87549</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129819&#xA;      &#xA;      &#xA;        129820&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17258834838867" lon="11.43079948425293">
+        <name>129819</name>
+      </trkpt>
+      <trkpt lat="48.171966552734375" lon="11.431618690490723">
+        <name>129820</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85986</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128306&#xA;      &#xA;      &#xA;        128307&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.190921783447266" lon="11.272363662719727">
+        <name>128306</name>
+      </trkpt>
+      <trkpt lat="48.19017791748047" lon="11.269234657287598">
+        <name>128307</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>84944</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127298&#xA;      &#xA;      &#xA;        127299&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20848846435547" lon="11.314520835876465">
+        <name>127298</name>
+      </trkpt>
+      <trkpt lat="48.20761489868164" lon="11.313986778259277">
+        <name>127299</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90154</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132333&#xA;      &#xA;      &#xA;        132332&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2448844909668" lon="11.476212501525879">
+        <name>132333</name>
+      </trkpt>
+      <trkpt lat="48.2448844909668" lon="11.4764986038208">
+        <name>132332</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96927</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138592&#xA;      &#xA;      &#xA;        138593&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31098175048828" lon="11.657292366027832">
+        <name>138592</name>
+      </trkpt>
+      <trkpt lat="48.312068939208984" lon="11.661005973815918">
+        <name>138593</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105524</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147075&#xA;      &#xA;      &#xA;        147076&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11186599731445" lon="11.517218589782715">
+        <name>147075</name>
+      </trkpt>
+      <trkpt lat="48.1124382019043" lon="11.516919136047363">
+        <name>147076</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87810</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130049&#xA;      &#xA;      &#xA;        128270&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15990447998047" lon="11.41465950012207">
+        <name>130049</name>
+      </trkpt>
+      <trkpt lat="48.15998077392578" lon="11.415048599243164">
+        <name>128270</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86768</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129038&#xA;      &#xA;      &#xA;        129039&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.210693359375" lon="11.494518280029297">
+        <name>129038</name>
+      </trkpt>
+      <trkpt lat="48.2114372253418" lon="11.496403694152832">
+        <name>129039</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87550</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129820&#xA;      &#xA;      &#xA;        129821&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.171966552734375" lon="11.431618690490723">
+        <name>129820</name>
+      </trkpt>
+      <trkpt lat="48.17143630981445" lon="11.43259048461914">
+        <name>129821</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>84945</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127299&#xA;      &#xA;      &#xA;        127300&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20761489868164" lon="11.313986778259277">
+        <name>127299</name>
+      </trkpt>
+      <trkpt lat="48.20536422729492" lon="11.313263893127441">
+        <name>127300</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90155</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132332&#xA;      &#xA;      &#xA;        132334&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2448844909668" lon="11.4764986038208">
+        <name>132332</name>
+      </trkpt>
+      <trkpt lat="48.24520492553711" lon="11.4764986038208">
+        <name>132334</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96928</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138593&#xA;      &#xA;      &#xA;        138594&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.312068939208984" lon="11.661005973815918">
+        <name>138593</name>
+      </trkpt>
+      <trkpt lat="48.31303405761719" lon="11.66480541229248">
+        <name>138594</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105525</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147076&#xA;      &#xA;      &#xA;        147077&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1124382019043" lon="11.516919136047363">
+        <name>147076</name>
+      </trkpt>
+      <trkpt lat="48.11389923095703" lon="11.516790390014648">
+        <name>147077</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87811</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130049&#xA;      &#xA;      &#xA;        130050&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15990447998047" lon="11.41465950012207">
+        <name>130049</name>
+      </trkpt>
+      <trkpt lat="48.1593132019043" lon="11.414639472961426">
+        <name>130050</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86769</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129034&#xA;      &#xA;      &#xA;        129040&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21126174926758" lon="11.49671745300293">
+        <name>129034</name>
+      </trkpt>
+      <trkpt lat="48.21223449707031" lon="11.498602867126465">
+        <name>129040</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105004</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146551&#xA;      &#xA;      &#xA;        146552&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.206764221191406" lon="11.395126342773438">
+        <name>146551</name>
+      </trkpt>
+      <trkpt lat="48.206459045410156" lon="11.397440910339355">
+        <name>146552</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87551</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129821&#xA;      &#xA;      &#xA;        129822&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17143630981445" lon="11.43259048461914">
+        <name>129821</name>
+      </trkpt>
+      <trkpt lat="48.17089080810547" lon="11.433656692504883">
+        <name>129822</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>84946</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127300&#xA;      &#xA;      &#xA;        127301&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20536422729492" lon="11.313263893127441">
+        <name>127300</name>
+      </trkpt>
+      <trkpt lat="48.20404052734375" lon="11.312748908996582">
+        <name>127301</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90156</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132334&#xA;      &#xA;      &#xA;        132333&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24520492553711" lon="11.4764986038208">
+        <name>132334</name>
+      </trkpt>
+      <trkpt lat="48.2448844909668" lon="11.476212501525879">
+        <name>132333</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96929</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138594&#xA;      &#xA;      &#xA;        138595&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31303405761719" lon="11.66480541229248">
+        <name>138594</name>
+      </trkpt>
+      <trkpt lat="48.31349182128906" lon="11.667860984802246">
+        <name>138595</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105526</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147077&#xA;      &#xA;      &#xA;        147078&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11389923095703" lon="11.516790390014648">
+        <name>147077</name>
+      </trkpt>
+      <trkpt lat="48.11650466918945" lon="11.516704559326172">
+        <name>147078</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87812</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130050&#xA;      &#xA;      &#xA;        130051&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1593132019043" lon="11.414639472961426">
+        <name>130050</name>
+      </trkpt>
+      <trkpt lat="48.158939361572266" lon="11.41490650177002">
+        <name>130051</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86770</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129040&#xA;      &#xA;      &#xA;        129041&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21223449707031" lon="11.498602867126465">
+        <name>129040</name>
+      </trkpt>
+      <trkpt lat="48.21390914916992" lon="11.501259803771973">
+        <name>129041</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105266</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146812&#xA;      &#xA;      &#xA;        146817&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.0638427734375" lon="11.711166381835938">
+        <name>146812</name>
+      </trkpt>
+      <trkpt lat="48.06153106689453" lon="11.706281661987305">
+        <name>146817</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87552</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129822&#xA;      &#xA;      &#xA;        129823&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17089080810547" lon="11.433656692504883">
+        <name>129822</name>
+      </trkpt>
+      <trkpt lat="48.1702766418457" lon="11.435046195983887">
+        <name>129823</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85989</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128309&#xA;      &#xA;      &#xA;        128310&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18912124633789" lon="11.262249946594238">
+        <name>128309</name>
+      </trkpt>
+      <trkpt lat="48.18880081176758" lon="11.259252548217773">
+        <name>128310</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>84947</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127301&#xA;      &#xA;      &#xA;        127302&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20404052734375" lon="11.312748908996582">
+        <name>127301</name>
+      </trkpt>
+      <trkpt lat="48.20242691040039" lon="11.31120777130127">
+        <name>127302</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90157</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132334&#xA;      &#xA;      &#xA;        132335&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24520492553711" lon="11.4764986038208">
+        <name>132334</name>
+      </trkpt>
+      <trkpt lat="48.24600601196289" lon="11.476527214050293">
+        <name>132335</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96930</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138595&#xA;      &#xA;      &#xA;        138596&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31349182128906" lon="11.667860984802246">
+        <name>138595</name>
+      </trkpt>
+      <trkpt lat="48.31381607055664" lon="11.670489311218262">
+        <name>138596</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105527</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147078&#xA;      &#xA;      &#xA;        147079&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11650466918945" lon="11.516704559326172">
+        <name>147078</name>
+      </trkpt>
+      <trkpt lat="48.11770248413086" lon="11.516919136047363">
+        <name>147079</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87813</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128272&#xA;      &#xA;      &#xA;        130053&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15910339355469" lon="11.415334701538086">
+        <name>128272</name>
+      </trkpt>
+      <trkpt lat="48.15884017944336" lon="11.415287017822266">
+        <name>130053</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86771</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129041&#xA;      &#xA;      &#xA;        129042&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21390914916992" lon="11.501259803771973">
+        <name>129041</name>
+      </trkpt>
+      <trkpt lat="48.215721130371094" lon="11.504316329956055">
+        <name>129042</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105006</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146552&#xA;      &#xA;      &#xA;        146553&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.206459045410156" lon="11.397440910339355">
+        <name>146552</name>
+      </trkpt>
+      <trkpt lat="48.20621109008789" lon="11.400668144226074">
+        <name>146553</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105267</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146817&#xA;      &#xA;      &#xA;        146818&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.06153106689453" lon="11.706281661987305">
+        <name>146817</name>
+      </trkpt>
+      <trkpt lat="48.05862808227539" lon="11.700197219848633">
+        <name>146818</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87553</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129823&#xA;      &#xA;      &#xA;        129824&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1702766418457" lon="11.435046195983887">
+        <name>129823</name>
+      </trkpt>
+      <trkpt lat="48.169593811035156" lon="11.436208724975586">
+        <name>129824</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85990</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128310&#xA;      &#xA;      &#xA;        128311&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18880081176758" lon="11.259252548217773">
+        <name>128310</name>
+      </trkpt>
+      <trkpt lat="48.1884651184082" lon="11.25625228881836">
+        <name>128311</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>84948</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127302&#xA;      &#xA;      &#xA;        127303&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20242691040039" lon="11.31120777130127">
+        <name>127302</name>
+      </trkpt>
+      <trkpt lat="48.20135498046875" lon="11.310006141662598">
+        <name>127303</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90158</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132335&#xA;      &#xA;      &#xA;        132336&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24600601196289" lon="11.476527214050293">
+        <name>132335</name>
+      </trkpt>
+      <trkpt lat="48.24713134765625" lon="11.476212501525879">
+        <name>132336</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96931</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138596&#xA;      &#xA;      &#xA;        138597&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31381607055664" lon="11.670489311218262">
+        <name>138596</name>
+      </trkpt>
+      <trkpt lat="48.314022064208984" lon="11.672003746032715">
+        <name>138597</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105528</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147079&#xA;      &#xA;      &#xA;        147080&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11770248413086" lon="11.516919136047363">
+        <name>147079</name>
+      </trkpt>
+      <trkpt lat="48.119537353515625" lon="11.517646789550781">
+        <name>147080</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87814</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130053&#xA;      &#xA;      &#xA;        130052&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15884017944336" lon="11.415287017822266">
+        <name>130053</name>
+      </trkpt>
+      <trkpt lat="48.158329010009766" lon="11.415116310119629">
+        <name>130052</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86772</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129042&#xA;      &#xA;      &#xA;        129043&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.215721130371094" lon="11.504316329956055">
+        <name>129042</name>
+      </trkpt>
+      <trkpt lat="48.21751022338867" lon="11.507829666137695">
+        <name>129043</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87554</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129824&#xA;      &#xA;      &#xA;        129825&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.169593811035156" lon="11.436208724975586">
+        <name>129824</name>
+      </trkpt>
+      <trkpt lat="48.16865158081055" lon="11.434913635253906">
+        <name>129825</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85991</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128311&#xA;      &#xA;      &#xA;        128312&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1884651184082" lon="11.25625228881836">
+        <name>128311</name>
+      </trkpt>
+      <trkpt lat="48.18806076049805" lon="11.253682136535645">
+        <name>128312</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90159</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132336&#xA;      &#xA;      &#xA;        132337&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24713134765625" lon="11.476212501525879">
+        <name>132336</name>
+      </trkpt>
+      <trkpt lat="48.24871063232422" lon="11.475098609924316">
+        <name>132337</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96932</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138597&#xA;      &#xA;      &#xA;        138598&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.314022064208984" lon="11.672003746032715">
+        <name>138597</name>
+      </trkpt>
+      <trkpt lat="48.31400680541992" lon="11.672346115112305">
+        <name>138598</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105529</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147080&#xA;      &#xA;      &#xA;        147081&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.119537353515625" lon="11.517646789550781">
+        <name>147080</name>
+      </trkpt>
+      <trkpt lat="48.12205505371094" lon="11.518889427185059">
+        <name>147081</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87815</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130053&#xA;      &#xA;      &#xA;        130051&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15884017944336" lon="11.415287017822266">
+        <name>130053</name>
+      </trkpt>
+      <trkpt lat="48.158939361572266" lon="11.41490650177002">
+        <name>130051</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86773</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129039&#xA;      &#xA;      &#xA;        129044&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2114372253418" lon="11.496403694152832">
+        <name>129039</name>
+      </trkpt>
+      <trkpt lat="48.21244430541992" lon="11.498373985290527">
+        <name>129044</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87555</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129825&#xA;      &#xA;      &#xA;        129826&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16865158081055" lon="11.434913635253906">
+        <name>129825</name>
+      </trkpt>
+      <trkpt lat="48.16740798950195" lon="11.433294296264648">
+        <name>129826</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85992</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128312&#xA;      &#xA;      &#xA;        128313&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18806076049805" lon="11.253682136535645">
+        <name>128312</name>
+      </trkpt>
+      <trkpt lat="48.18743133544922" lon="11.25119686126709">
+        <name>128313</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90160</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132337&#xA;      &#xA;      &#xA;        132338&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24871063232422" lon="11.475098609924316">
+        <name>132337</name>
+      </trkpt>
+      <trkpt lat="48.25078582763672" lon="11.473670959472656">
+        <name>132338</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96933</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138598&#xA;      &#xA;      &#xA;        138599&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31400680541992" lon="11.672346115112305">
+        <name>138598</name>
+      </trkpt>
+      <trkpt lat="48.31394958496094" lon="11.672545433044434">
+        <name>138599</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105530</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147081&#xA;      &#xA;      &#xA;        147082&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12205505371094" lon="11.518889427185059">
+        <name>147081</name>
+      </trkpt>
+      <trkpt lat="48.1226806640625" lon="11.519332885742188">
+        <name>147082</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87816</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130052&#xA;      &#xA;      &#xA;        128274&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.158329010009766" lon="11.415116310119629">
+        <name>130052</name>
+      </trkpt>
+      <trkpt lat="48.15804672241211" lon="11.415238380432129">
+        <name>128274</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86774</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129044&#xA;      &#xA;      &#xA;        129045&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21244430541992" lon="11.498373985290527">
+        <name>129044</name>
+      </trkpt>
+      <trkpt lat="48.21406555175781" lon="11.500916481018066">
+        <name>129045</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105009</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146553&#xA;      &#xA;      &#xA;        146557&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20621109008789" lon="11.400668144226074">
+        <name>146553</name>
+      </trkpt>
+      <trkpt lat="48.20600509643555" lon="11.404182434082031">
+        <name>146557</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87556</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129826&#xA;      &#xA;      &#xA;        129827&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16740798950195" lon="11.433294296264648">
+        <name>129826</name>
+      </trkpt>
+      <trkpt lat="48.16685104370117" lon="11.432703971862793">
+        <name>129827</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85993</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128313&#xA;      &#xA;      &#xA;        128314&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18743133544922" lon="11.25119686126709">
+        <name>128313</name>
+      </trkpt>
+      <trkpt lat="48.18686294555664" lon="11.24944019317627">
+        <name>128314</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90161</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132338&#xA;      &#xA;      &#xA;        132339&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25078582763672" lon="11.473670959472656">
+        <name>132338</name>
+      </trkpt>
+      <trkpt lat="48.25321578979492" lon="11.472185134887695">
+        <name>132339</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96934</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138599&#xA;      &#xA;      &#xA;        138600&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31394958496094" lon="11.672545433044434">
+        <name>138599</name>
+      </trkpt>
+      <trkpt lat="48.314022064208984" lon="11.672774314880371">
+        <name>138600</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105531</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147082&#xA;      &#xA;      &#xA;        147083&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1226806640625" lon="11.519332885742188">
+        <name>147082</name>
+      </trkpt>
+      <trkpt lat="48.123046875" lon="11.519389152526855">
+        <name>147083</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87817</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130052&#xA;      &#xA;      &#xA;        128914&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.158329010009766" lon="11.415116310119629">
+        <name>130052</name>
+      </trkpt>
+      <trkpt lat="48.15797424316406" lon="11.413873672485352">
+        <name>128914</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86775</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129045&#xA;      &#xA;      &#xA;        129046&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21406555175781" lon="11.500916481018066">
+        <name>129045</name>
+      </trkpt>
+      <trkpt lat="48.2159309387207" lon="11.504087448120117">
+        <name>129046</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87557</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129827&#xA;      &#xA;      &#xA;        129828&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16685104370117" lon="11.432703971862793">
+        <name>129827</name>
+      </trkpt>
+      <trkpt lat="48.16635513305664" lon="11.432494163513184">
+        <name>129828</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85994</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128314&#xA;      &#xA;      &#xA;        128315&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18686294555664" lon="11.24944019317627">
+        <name>128314</name>
+      </trkpt>
+      <trkpt lat="48.18620300292969" lon="11.247596740722656">
+        <name>128315</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96414</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138066&#xA;      &#xA;      &#xA;        138096&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.275150299072266" lon="11.281842231750488">
+        <name>138066</name>
+      </trkpt>
+      <trkpt lat="48.27621841430664" lon="11.279842376708984">
+        <name>138096</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90162</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132339&#xA;      &#xA;      &#xA;        132340&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25321578979492" lon="11.472185134887695">
+        <name>132339</name>
+      </trkpt>
+      <trkpt lat="48.255062103271484" lon="11.470985412597656">
+        <name>132340</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96935</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138600&#xA;      &#xA;      &#xA;        138601&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.314022064208984" lon="11.672774314880371">
+        <name>138600</name>
+      </trkpt>
+      <trkpt lat="48.31417465209961" lon="11.672746658325195">
+        <name>138601</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105532</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147083&#xA;      &#xA;      &#xA;        147084&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.123046875" lon="11.519389152526855">
+        <name>147083</name>
+      </trkpt>
+      <trkpt lat="48.12335205078125" lon="11.519131660461426">
+        <name>147084</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87818</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128268&#xA;      &#xA;      &#xA;        130054&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16078186035156" lon="11.414229393005371">
+        <name>128268</name>
+      </trkpt>
+      <trkpt lat="48.16055679321289" lon="11.413077354431152">
+        <name>130054</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86776</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129046&#xA;      &#xA;      &#xA;        129047&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2159309387207" lon="11.504087448120117">
+        <name>129046</name>
+      </trkpt>
+      <trkpt lat="48.21770095825195" lon="11.507600784301758">
+        <name>129047</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87558</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129828&#xA;      &#xA;      &#xA;        129829&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16635513305664" lon="11.432494163513184">
+        <name>129828</name>
+      </trkpt>
+      <trkpt lat="48.16580581665039" lon="11.432646751403809">
+        <name>129829</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85995</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128315&#xA;      &#xA;      &#xA;        128316&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18620300292969" lon="11.247596740722656">
+        <name>128315</name>
+      </trkpt>
+      <trkpt lat="48.18574905395508" lon="11.24596881866455">
+        <name>128316</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96415</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138096&#xA;      &#xA;      &#xA;        138097&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.27621841430664" lon="11.279842376708984">
+        <name>138096</name>
+      </trkpt>
+      <trkpt lat="48.27760696411133" lon="11.276969909667969">
+        <name>138097</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90163</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132340&#xA;      &#xA;      &#xA;        132341&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.255062103271484" lon="11.470985412597656">
+        <name>132340</name>
+      </trkpt>
+      <trkpt lat="48.2557258605957" lon="11.470643043518066">
+        <name>132341</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96936</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138601&#xA;      &#xA;      &#xA;        138602&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31417465209961" lon="11.672746658325195">
+        <name>138601</name>
+      </trkpt>
+      <trkpt lat="48.31423568725586" lon="11.67248821258545">
+        <name>138602</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105533</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147084&#xA;      &#xA;      &#xA;        147085&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12335205078125" lon="11.519131660461426">
+        <name>147084</name>
+      </trkpt>
+      <trkpt lat="48.12358093261719" lon="11.518388748168945">
+        <name>147085</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87819</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130054&#xA;      &#xA;      &#xA;        130055&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16055679321289" lon="11.413077354431152">
+        <name>130054</name>
+      </trkpt>
+      <trkpt lat="48.16055679321289" lon="11.412753105163574">
+        <name>130055</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86777</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129043&#xA;      &#xA;      &#xA;        129048&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21751022338867" lon="11.507829666137695">
+        <name>129043</name>
+      </trkpt>
+      <trkpt lat="48.2188606262207" lon="11.51082992553711">
+        <name>129048</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105012</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146557&#xA;      &#xA;      &#xA;        146562&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20600509643555" lon="11.404182434082031">
+        <name>146557</name>
+      </trkpt>
+      <trkpt lat="48.20566177368164" lon="11.410266876220703">
+        <name>146562</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87559</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129829&#xA;      &#xA;      &#xA;        129830&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16580581665039" lon="11.432646751403809">
+        <name>129829</name>
+      </trkpt>
+      <trkpt lat="48.165191650390625" lon="11.433122634887695">
+        <name>129830</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85996</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128316&#xA;      &#xA;      &#xA;        128317&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18574905395508" lon="11.24596881866455">
+        <name>128316</name>
+      </trkpt>
+      <trkpt lat="48.185604095458984" lon="11.245283126831055">
+        <name>128317</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96416</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138097&#xA;      &#xA;      &#xA;        138098&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.27760696411133" lon="11.276969909667969">
+        <name>138097</name>
+      </trkpt>
+      <trkpt lat="48.280029296875" lon="11.27165699005127">
+        <name>138098</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90164</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132341&#xA;      &#xA;      &#xA;        132342&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2557258605957" lon="11.470643043518066">
+        <name>132341</name>
+      </trkpt>
+      <trkpt lat="48.25606918334961" lon="11.47104263305664">
+        <name>132342</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96937</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138602&#xA;      &#xA;      &#xA;        138603&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31423568725586" lon="11.67248821258545">
+        <name>138602</name>
+      </trkpt>
+      <trkpt lat="48.31414031982422" lon="11.672317504882812">
+        <name>138603</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105534</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147085&#xA;      &#xA;      &#xA;        147086&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12358093261719" lon="11.518388748168945">
+        <name>147085</name>
+      </trkpt>
+      <trkpt lat="48.12434005737305" lon="11.514275550842285">
+        <name>147086</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87820</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130055&#xA;      &#xA;      &#xA;        130056&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16055679321289" lon="11.412753105163574">
+        <name>130055</name>
+      </trkpt>
+      <trkpt lat="48.1593132019043" lon="11.413077354431152">
+        <name>130056</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86778</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129048&#xA;      &#xA;      &#xA;        129049&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2188606262207" lon="11.51082992553711">
+        <name>129048</name>
+      </trkpt>
+      <trkpt lat="48.220272064208984" lon="11.514314651489258">
+        <name>129049</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105013</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146562&#xA;      &#xA;      &#xA;        146565&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20566177368164" lon="11.410266876220703">
+        <name>146562</name>
+      </trkpt>
+      <trkpt lat="48.205257415771484" lon="11.417179107666016">
+        <name>146565</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87560</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129830&#xA;      &#xA;      &#xA;        129831&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.165191650390625" lon="11.433122634887695">
+        <name>129830</name>
+      </trkpt>
+      <trkpt lat="48.16447067260742" lon="11.433636665344238">
+        <name>129831</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85997</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128317&#xA;      &#xA;      &#xA;        128318&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.185604095458984" lon="11.245283126831055">
+        <name>128317</name>
+      </trkpt>
+      <trkpt lat="48.18580627441406" lon="11.244917869567871">
+        <name>128318</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90165</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132342&#xA;      &#xA;      &#xA;        132343&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25606918334961" lon="11.47104263305664">
+        <name>132342</name>
+      </trkpt>
+      <trkpt lat="48.25597381591797" lon="11.472413063049316">
+        <name>132343</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96938</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138603&#xA;      &#xA;      &#xA;        138597&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31414031982422" lon="11.672317504882812">
+        <name>138603</name>
+      </trkpt>
+      <trkpt lat="48.314022064208984" lon="11.672003746032715">
+        <name>138597</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105535</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147086&#xA;      &#xA;      &#xA;        147087&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12434005737305" lon="11.514275550842285">
+        <name>147086</name>
+      </trkpt>
+      <trkpt lat="48.124759674072266" lon="11.511476516723633">
+        <name>147087</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87821</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130056&#xA;      &#xA;      &#xA;        130050&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1593132019043" lon="11.413077354431152">
+        <name>130056</name>
+      </trkpt>
+      <trkpt lat="48.1593132019043" lon="11.414639472961426">
+        <name>130050</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86779</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129049&#xA;      &#xA;      &#xA;        129050&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.220272064208984" lon="11.514314651489258">
+        <name>129049</name>
+      </trkpt>
+      <trkpt lat="48.221527099609375" lon="11.517942428588867">
+        <name>129050</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105275</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146818&#xA;      &#xA;      &#xA;        146831&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.05862808227539" lon="11.700197219848633">
+        <name>146818</name>
+      </trkpt>
+      <trkpt lat="48.05681228637695" lon="11.696884155273438">
+        <name>146831</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87561</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129831&#xA;      &#xA;      &#xA;        129832&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16447067260742" lon="11.433636665344238">
+        <name>129831</name>
+      </trkpt>
+      <trkpt lat="48.16414260864258" lon="11.433693885803223">
+        <name>129832</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96418</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138098&#xA;      &#xA;      &#xA;        138099&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.280029296875" lon="11.27165699005127">
+        <name>138098</name>
+      </trkpt>
+      <trkpt lat="48.282569885253906" lon="11.26634407043457">
+        <name>138099</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90166</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132343&#xA;      &#xA;      &#xA;        132344&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25597381591797" lon="11.472413063049316">
+        <name>132343</name>
+      </trkpt>
+      <trkpt lat="48.255897521972656" lon="11.473898887634277">
+        <name>132344</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96939</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138600&#xA;      &#xA;      &#xA;        138604&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.314022064208984" lon="11.672774314880371">
+        <name>138600</name>
+      </trkpt>
+      <trkpt lat="48.31415939331055" lon="11.673116683959961">
+        <name>138604</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105536</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147087&#xA;      &#xA;      &#xA;        147088&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.124759674072266" lon="11.511476516723633">
+        <name>147087</name>
+      </trkpt>
+      <trkpt lat="48.12519836425781" lon="11.508905410766602">
+        <name>147088</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87822</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130056&#xA;      &#xA;      &#xA;        130057&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1593132019043" lon="11.413077354431152">
+        <name>130056</name>
+      </trkpt>
+      <trkpt lat="48.158321380615234" lon="11.413191795349121">
+        <name>130057</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86780</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129047&#xA;      &#xA;      &#xA;        129051&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21770095825195" lon="11.507600784301758">
+        <name>129047</name>
+      </trkpt>
+      <trkpt lat="48.21907424926758" lon="11.51057243347168">
+        <name>129051</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87562</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129832&#xA;      &#xA;      &#xA;        129833&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16414260864258" lon="11.433693885803223">
+        <name>129832</name>
+      </trkpt>
+      <trkpt lat="48.163822174072266" lon="11.433523178100586">
+        <name>129833</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85999</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128318&#xA;      &#xA;      &#xA;        128320&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18580627441406" lon="11.244917869567871">
+        <name>128318</name>
+      </trkpt>
+      <trkpt lat="48.18644332885742" lon="11.244860649108887">
+        <name>128320</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90167</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132344&#xA;      &#xA;      &#xA;        132345&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.255897521972656" lon="11.473898887634277">
+        <name>132344</name>
+      </trkpt>
+      <trkpt lat="48.255916595458984" lon="11.474270820617676">
+        <name>132345</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96940</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138604&#xA;      &#xA;      &#xA;        138601&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31415939331055" lon="11.673116683959961">
+        <name>138604</name>
+      </trkpt>
+      <trkpt lat="48.31417465209961" lon="11.672746658325195">
+        <name>138601</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105537</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147088&#xA;      &#xA;      &#xA;        147089&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12519836425781" lon="11.508905410766602">
+        <name>147088</name>
+      </trkpt>
+      <trkpt lat="48.125675201416016" lon="11.505277633666992">
+        <name>147089</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87823</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130057&#xA;      &#xA;      &#xA;        130059&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.158321380615234" lon="11.413191795349121">
+        <name>130057</name>
+      </trkpt>
+      <trkpt lat="48.15803909301758" lon="11.41309642791748">
+        <name>130059</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86781</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129051&#xA;      &#xA;      &#xA;        129052&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21907424926758" lon="11.51057243347168">
+        <name>129051</name>
+      </trkpt>
+      <trkpt lat="48.22052001953125" lon="11.514142990112305">
+        <name>129052</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87563</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129833&#xA;      &#xA;      &#xA;        129834&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.163822174072266" lon="11.433523178100586">
+        <name>129833</name>
+      </trkpt>
+      <trkpt lat="48.16340255737305" lon="11.433084487915039">
+        <name>129834</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86000</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128320&#xA;      &#xA;      &#xA;        128321&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18644332885742" lon="11.244860649108887">
+        <name>128320</name>
+      </trkpt>
+      <trkpt lat="48.18645095825195" lon="11.247146606445312">
+        <name>128321</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90168</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132345&#xA;      &#xA;      &#xA;        132346&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.255916595458984" lon="11.474270820617676">
+        <name>132345</name>
+      </trkpt>
+      <trkpt lat="48.255821228027344" lon="11.474470138549805">
+        <name>132346</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96941</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138604&#xA;      &#xA;      &#xA;        138605&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31415939331055" lon="11.673116683959961">
+        <name>138604</name>
+      </trkpt>
+      <trkpt lat="48.31443786621094" lon="11.675107955932617">
+        <name>138605</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105538</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147089&#xA;      &#xA;      &#xA;        147090&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.125675201416016" lon="11.505277633666992">
+        <name>147089</name>
+      </trkpt>
+      <trkpt lat="48.12584686279297" lon="11.50187873840332">
+        <name>147090</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87824</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130059&#xA;      &#xA;      &#xA;        130058&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15803909301758" lon="11.41309642791748">
+        <name>130059</name>
+      </trkpt>
+      <trkpt lat="48.15815353393555" lon="11.413496017456055">
+        <name>130058</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86782</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129052&#xA;      &#xA;      &#xA;        129053&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22052001953125" lon="11.514142990112305">
+        <name>129052</name>
+      </trkpt>
+      <trkpt lat="48.22179412841797" lon="11.517857551574707">
+        <name>129053</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87564</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129834&#xA;      &#xA;      &#xA;        129835&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16340255737305" lon="11.433084487915039">
+        <name>129834</name>
+      </trkpt>
+      <trkpt lat="48.16285705566406" lon="11.432228088378906">
+        <name>129835</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86001</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128321&#xA;      &#xA;      &#xA;        128322&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18645095825195" lon="11.247146606445312">
+        <name>128321</name>
+      </trkpt>
+      <trkpt lat="48.18653106689453" lon="11.247737884521484">
+        <name>128322</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90169</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132346&#xA;      &#xA;      &#xA;        132347&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.255821228027344" lon="11.474470138549805">
+        <name>132346</name>
+      </trkpt>
+      <trkpt lat="48.25597381591797" lon="11.47467041015625">
+        <name>132347</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96942</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138605&#xA;      &#xA;      &#xA;        138606&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31443786621094" lon="11.675107955932617">
+        <name>138605</name>
+      </trkpt>
+      <trkpt lat="48.31465530395508" lon="11.677125930786133">
+        <name>138606</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105278</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146831&#xA;      &#xA;      &#xA;        146832&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.05681228637695" lon="11.696884155273438">
+        <name>146831</name>
+      </trkpt>
+      <trkpt lat="48.054691314697266" lon="11.693770408630371">
+        <name>146832</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105539</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147090&#xA;      &#xA;      &#xA;        147091&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12584686279297" lon="11.50187873840332">
+        <name>147090</name>
+      </trkpt>
+      <trkpt lat="48.12542724609375" lon="11.497964859008789">
+        <name>147091</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87825</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130058&#xA;      &#xA;      &#xA;        130057&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15815353393555" lon="11.413496017456055">
+        <name>130058</name>
+      </trkpt>
+      <trkpt lat="48.158321380615234" lon="11.413191795349121">
+        <name>130057</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86783</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129050&#xA;      &#xA;      &#xA;        129054&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.221527099609375" lon="11.517942428588867">
+        <name>129050</name>
+      </trkpt>
+      <trkpt lat="48.22261047363281" lon="11.521598815917969">
+        <name>129054</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87565</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129835&#xA;      &#xA;      &#xA;        129836&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16285705566406" lon="11.432228088378906">
+        <name>129835</name>
+      </trkpt>
+      <trkpt lat="48.16215896606445" lon="11.43102741241455">
+        <name>129836</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86002</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128322&#xA;      &#xA;      &#xA;        128323&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18653106689453" lon="11.247737884521484">
+        <name>128322</name>
+      </trkpt>
+      <trkpt lat="48.18674087524414" lon="11.248404502868652">
+        <name>128323</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90170</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132347&#xA;      &#xA;      &#xA;        132348&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25597381591797" lon="11.47467041015625">
+        <name>132347</name>
+      </trkpt>
+      <trkpt lat="48.25620651245117" lon="11.474527359008789">
+        <name>132348</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96943</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138606&#xA;      &#xA;      &#xA;        138607&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31465530395508" lon="11.677125930786133">
+        <name>138606</name>
+      </trkpt>
+      <trkpt lat="48.31483840942383" lon="11.679973602294922">
+        <name>138607</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>110750</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147160&#xA;      &#xA;      &#xA;        152259&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.011783599853516" lon="11.666950225830078">
+        <name>147160</name>
+      </trkpt>
+      <trkpt lat="48.00653839111328" lon="11.67048168182373">
+        <name>152259</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105540</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147091&#xA;      &#xA;      &#xA;        147092&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12542724609375" lon="11.497964859008789">
+        <name>147091</name>
+      </trkpt>
+      <trkpt lat="48.12466812133789" lon="11.494766235351562">
+        <name>147092</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87826</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130058&#xA;      &#xA;      &#xA;        128914&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15815353393555" lon="11.413496017456055">
+        <name>130058</name>
+      </trkpt>
+      <trkpt lat="48.15797424316406" lon="11.413873672485352">
+        <name>128914</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86784</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129054&#xA;      &#xA;      &#xA;        129055&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22261047363281" lon="11.521598815917969">
+        <name>129054</name>
+      </trkpt>
+      <trkpt lat="48.223655700683594" lon="11.525911331176758">
+        <name>129055</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87566</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129836&#xA;      &#xA;      &#xA;        129837&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16215896606445" lon="11.43102741241455">
+        <name>129836</name>
+      </trkpt>
+      <trkpt lat="48.1616325378418" lon="11.429903030395508">
+        <name>129837</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86003</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128323&#xA;      &#xA;      &#xA;        128324&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18674087524414" lon="11.248404502868652">
+        <name>128323</name>
+      </trkpt>
+      <trkpt lat="48.18707275390625" lon="11.248994827270508">
+        <name>128324</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>84961</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127313&#xA;      &#xA;      &#xA;        127314&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19998550415039" lon="11.306253433227539">
+        <name>127313</name>
+      </trkpt>
+      <trkpt lat="48.19981002807617" lon="11.3050537109375">
+        <name>127314</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90171</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132348&#xA;      &#xA;      &#xA;        132349&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25620651245117" lon="11.474527359008789">
+        <name>132348</name>
+      </trkpt>
+      <trkpt lat="48.25768280029297" lon="11.474699020385742">
+        <name>132349</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96944</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138607&#xA;      &#xA;      &#xA;        138608&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31483840942383" lon="11.679973602294922">
+        <name>138607</name>
+      </trkpt>
+      <trkpt lat="48.31502914428711" lon="11.683744430541992">
+        <name>138608</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>110751</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        152259&#xA;      &#xA;      &#xA;        152260&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.00653839111328" lon="11.67048168182373">
+        <name>152259</name>
+      </trkpt>
+      <trkpt lat="48.001434326171875" lon="11.673995971679688">
+        <name>152260</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105541</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147092&#xA;      &#xA;      &#xA;        147093&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12466812133789" lon="11.494766235351562">
+        <name>147092</name>
+      </trkpt>
+      <trkpt lat="48.12397766113281" lon="11.491280555725098">
+        <name>147093</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87827</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128277&#xA;      &#xA;      &#xA;        130071&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15625" lon="11.41647720336914">
+        <name>128277</name>
+      </trkpt>
+      <trkpt lat="48.15609359741211" lon="11.416790962219238">
+        <name>130071</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86785</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129055&#xA;      &#xA;      &#xA;        129056&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.223655700683594" lon="11.525911331176758">
+        <name>129055</name>
+      </trkpt>
+      <trkpt lat="48.224586486816406" lon="11.530768394470215">
+        <name>129056</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87567</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129837&#xA;      &#xA;      &#xA;        129838&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1616325378418" lon="11.429903030395508">
+        <name>129837</name>
+      </trkpt>
+      <trkpt lat="48.16147994995117" lon="11.429370880126953">
+        <name>129838</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86004</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128324&#xA;      &#xA;      &#xA;        128325&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18707275390625" lon="11.248994827270508">
+        <name>128324</name>
+      </trkpt>
+      <trkpt lat="48.187191009521484" lon="11.249338150024414">
+        <name>128325</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90172</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132349&#xA;      &#xA;      &#xA;        132350&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25768280029297" lon="11.474699020385742">
+        <name>132349</name>
+      </trkpt>
+      <trkpt lat="48.259647369384766" lon="11.475641250610352">
+        <name>132350</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96945</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138608&#xA;      &#xA;      &#xA;        138609&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31502914428711" lon="11.683744430541992">
+        <name>138608</name>
+      </trkpt>
+      <trkpt lat="48.31521987915039" lon="11.687200546264648">
+        <name>138609</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105281</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146832&#xA;      &#xA;      &#xA;        146833&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.054691314697266" lon="11.693770408630371">
+        <name>146832</name>
+      </trkpt>
+      <trkpt lat="48.052398681640625" lon="11.69119930267334">
+        <name>146833</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>110752</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        152261&#xA;      &#xA;      &#xA;        152262&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.00137710571289" lon="11.673782348632812">
+        <name>152261</name>
+      </trkpt>
+      <trkpt lat="48.00645065307617" lon="11.670310974121094">
+        <name>152262</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105542</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147093&#xA;      &#xA;      &#xA;        147094&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12397766113281" lon="11.491280555725098">
+        <name>147093</name>
+      </trkpt>
+      <trkpt lat="48.12375259399414" lon="11.487624168395996">
+        <name>147094</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87828</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130071&#xA;      &#xA;      &#xA;        130069&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15609359741211" lon="11.416790962219238">
+        <name>130071</name>
+      </trkpt>
+      <trkpt lat="48.15608596801758" lon="11.416333198547363">
+        <name>130069</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86786</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129053&#xA;      &#xA;      &#xA;        129057&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22179412841797" lon="11.517857551574707">
+        <name>129053</name>
+      </trkpt>
+      <trkpt lat="48.22285842895508" lon="11.521598815917969">
+        <name>129057</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87568</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129838&#xA;      &#xA;      &#xA;        129839&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16147994995117" lon="11.429370880126953">
+        <name>129838</name>
+      </trkpt>
+      <trkpt lat="48.161380767822266" lon="11.428799629211426">
+        <name>129839</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86005</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128325&#xA;      &#xA;      &#xA;        128326&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.187191009521484" lon="11.249338150024414">
+        <name>128325</name>
+      </trkpt>
+      <trkpt lat="48.187225341796875" lon="11.249547004699707">
+        <name>128326</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90173</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132350&#xA;      &#xA;      &#xA;        132351&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.259647369384766" lon="11.475641250610352">
+        <name>132350</name>
+      </trkpt>
+      <trkpt lat="48.26178741455078" lon="11.476641654968262">
+        <name>132351</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96946</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138609&#xA;      &#xA;      &#xA;        138610&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31521987915039" lon="11.687200546264648">
+        <name>138609</name>
+      </trkpt>
+      <trkpt lat="48.31541061401367" lon="11.687943458557129">
+        <name>138610</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>110753</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        152262&#xA;      &#xA;      &#xA;        147159&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.00645065307617" lon="11.670310974121094">
+        <name>152262</name>
+      </trkpt>
+      <trkpt lat="48.0117073059082" lon="11.666635513305664">
+        <name>147159</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105543</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147094&#xA;      &#xA;      &#xA;        147095&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12375259399414" lon="11.487624168395996">
+        <name>147094</name>
+      </trkpt>
+      <trkpt lat="48.123634338378906" lon="11.479598045349121">
+        <name>147095</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87829</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130069&#xA;      &#xA;      &#xA;        128277&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15608596801758" lon="11.416333198547363">
+        <name>130069</name>
+      </trkpt>
+      <trkpt lat="48.15625" lon="11.41647720336914">
+        <name>128277</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86787</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129057&#xA;      &#xA;      &#xA;        129058&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22285842895508" lon="11.521598815917969">
+        <name>129057</name>
+      </trkpt>
+      <trkpt lat="48.22390365600586" lon="11.525740623474121">
+        <name>129058</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105022</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146565&#xA;      &#xA;      &#xA;        146573&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.205257415771484" lon="11.417179107666016">
+        <name>146565</name>
+      </trkpt>
+      <trkpt lat="48.204864501953125" lon="11.42429256439209">
+        <name>146573</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87569</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129839&#xA;      &#xA;      &#xA;        129840&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.161380767822266" lon="11.428799629211426">
+        <name>129839</name>
+      </trkpt>
+      <trkpt lat="48.16111373901367" lon="11.42811393737793">
+        <name>129840</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86006</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128326&#xA;      &#xA;      &#xA;        128327&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.187225341796875" lon="11.249547004699707">
+        <name>128326</name>
+      </trkpt>
+      <trkpt lat="48.18748474121094" lon="11.249566078186035">
+        <name>128327</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90174</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132351&#xA;      &#xA;      &#xA;        132352&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26178741455078" lon="11.476641654968262">
+        <name>132351</name>
+      </trkpt>
+      <trkpt lat="48.26192092895508" lon="11.476813316345215">
+        <name>132352</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96947</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138610&#xA;      &#xA;      &#xA;        138611&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31541061401367" lon="11.687943458557129">
+        <name>138610</name>
+      </trkpt>
+      <trkpt lat="48.31569290161133" lon="11.688819885253906">
+        <name>138611</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105544</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147095&#xA;      &#xA;      &#xA;        147096&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.123634338378906" lon="11.479598045349121">
+        <name>147095</name>
+      </trkpt>
+      <trkpt lat="48.12358093261719" lon="11.474769592285156">
+        <name>147096</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87830</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130071&#xA;      &#xA;      &#xA;        130070&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15609359741211" lon="11.416790962219238">
+        <name>130071</name>
+      </trkpt>
+      <trkpt lat="48.15591812133789" lon="11.417476654052734">
+        <name>130070</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86788</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129058&#xA;      &#xA;      &#xA;        129059&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22390365600586" lon="11.525740623474121">
+        <name>129058</name>
+      </trkpt>
+      <trkpt lat="48.224857330322266" lon="11.530540466308594">
+        <name>129059</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87570</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129840&#xA;      &#xA;      &#xA;        129841&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16111373901367" lon="11.42811393737793">
+        <name>129840</name>
+      </trkpt>
+      <trkpt lat="48.16082000732422" lon="11.427447319030762">
+        <name>129841</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86007</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128327&#xA;      &#xA;      &#xA;        128328&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18748474121094" lon="11.249566078186035">
+        <name>128327</name>
+      </trkpt>
+      <trkpt lat="48.18776321411133" lon="11.249470710754395">
+        <name>128328</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90175</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132352&#xA;      &#xA;      &#xA;        132353&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26192092895508" lon="11.476813316345215">
+        <name>132352</name>
+      </trkpt>
+      <trkpt lat="48.26201629638672" lon="11.476641654968262">
+        <name>132353</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96948</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138611&#xA;      &#xA;      &#xA;        138612&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31569290161133" lon="11.688819885253906">
+        <name>138611</name>
+      </trkpt>
+      <trkpt lat="48.31578063964844" lon="11.689504623413086">
+        <name>138612</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105545</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147096&#xA;      &#xA;      &#xA;        147097&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12358093261719" lon="11.474769592285156">
+        <name>147096</name>
+      </trkpt>
+      <trkpt lat="48.123714447021484" lon="11.470142364501953">
+        <name>147097</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87831</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130070&#xA;      &#xA;      &#xA;        128279&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15591812133789" lon="11.417476654052734">
+        <name>130070</name>
+      </trkpt>
+      <trkpt lat="48.1557731628418" lon="11.418363571166992">
+        <name>128279</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86789</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129056&#xA;      &#xA;      &#xA;        129060&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.224586486816406" lon="11.530768394470215">
+        <name>129056</name>
+      </trkpt>
+      <trkpt lat="48.22489547729492" lon="11.532710075378418">
+        <name>129060</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105024</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146573&#xA;      &#xA;      &#xA;        146574&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.204864501953125" lon="11.42429256439209">
+        <name>146573</name>
+      </trkpt>
+      <trkpt lat="48.20453643798828" lon="11.429862022399902">
+        <name>146574</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87571</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129841&#xA;      &#xA;      &#xA;        129842&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16082000732422" lon="11.427447319030762">
+        <name>129841</name>
+      </trkpt>
+      <trkpt lat="48.16069412231445" lon="11.426705360412598">
+        <name>129842</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86008</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128328&#xA;      &#xA;      &#xA;        128329&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18776321411133" lon="11.249470710754395">
+        <name>128328</name>
+      </trkpt>
+      <trkpt lat="48.19082260131836" lon="11.2492036819458">
+        <name>128329</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96428</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138099&#xA;      &#xA;      &#xA;        138108&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.282569885253906" lon="11.26634407043457">
+        <name>138099</name>
+      </trkpt>
+      <trkpt lat="48.28470230102539" lon="11.261801719665527">
+        <name>138108</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90176</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132353&#xA;      &#xA;      &#xA;        132354&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26201629638672" lon="11.476641654968262">
+        <name>132353</name>
+      </trkpt>
+      <trkpt lat="48.261959075927734" lon="11.476384162902832">
+        <name>132354</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96949</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138612&#xA;      &#xA;      &#xA;        138613&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31578063964844" lon="11.689504623413086">
+        <name>138612</name>
+      </trkpt>
+      <trkpt lat="48.31571578979492" lon="11.690056800842285">
+        <name>138613</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105546</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147097&#xA;      &#xA;      &#xA;        147098&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.123714447021484" lon="11.470142364501953">
+        <name>147097</name>
+      </trkpt>
+      <trkpt lat="48.12397766113281" lon="11.462172508239746">
+        <name>147098</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87832</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130069&#xA;      &#xA;      &#xA;        130068&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15608596801758" lon="11.416333198547363">
+        <name>130069</name>
+      </trkpt>
+      <trkpt lat="48.1559944152832" lon="11.415895462036133">
+        <name>130068</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86790</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129060&#xA;      &#xA;      &#xA;        129061&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22489547729492" lon="11.532710075378418">
+        <name>129060</name>
+      </trkpt>
+      <trkpt lat="48.22493362426758" lon="11.533967018127441">
+        <name>129061</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87572</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129842&#xA;      &#xA;      &#xA;        129843&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16069412231445" lon="11.426705360412598">
+        <name>129842</name>
+      </trkpt>
+      <trkpt lat="48.16080856323242" lon="11.426152229309082">
+        <name>129843</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86009</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128329&#xA;      &#xA;      &#xA;        128330&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19082260131836" lon="11.2492036819458">
+        <name>128329</name>
+      </trkpt>
+      <trkpt lat="48.19188690185547" lon="11.249032974243164">
+        <name>128330</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90177</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132354&#xA;      &#xA;      &#xA;        132364&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.261959075927734" lon="11.476384162902832">
+        <name>132354</name>
+      </trkpt>
+      <trkpt lat="48.26213073730469" lon="11.475298881530762">
+        <name>132364</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96950</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138613&#xA;      &#xA;      &#xA;        138615&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31571578979492" lon="11.690056800842285">
+        <name>138613</name>
+      </trkpt>
+      <trkpt lat="48.316226959228516" lon="11.690285682678223">
+        <name>138615</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105547</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147098&#xA;      &#xA;      &#xA;        147099&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12397766113281" lon="11.462172508239746">
+        <name>147098</name>
+      </trkpt>
+      <trkpt lat="48.12434005737305" lon="11.457630157470703">
+        <name>147099</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87833</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130068&#xA;      &#xA;      &#xA;        130067&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1559944152832" lon="11.415895462036133">
+        <name>130068</name>
+      </trkpt>
+      <trkpt lat="48.15609359741211" lon="11.41463851928711">
+        <name>130067</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86791</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129061&#xA;      &#xA;      &#xA;        129062&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22493362426758" lon="11.533967018127441">
+        <name>129061</name>
+      </trkpt>
+      <trkpt lat="48.22478103637695" lon="11.535195350646973">
+        <name>129062</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105026</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146574&#xA;      &#xA;      &#xA;        146578&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20453643798828" lon="11.429862022399902">
+        <name>146574</name>
+      </trkpt>
+      <trkpt lat="48.2041130065918" lon="11.436518669128418">
+        <name>146578</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87573</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129843&#xA;      &#xA;      &#xA;        129844&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16080856323242" lon="11.426152229309082">
+        <name>129843</name>
+      </trkpt>
+      <trkpt lat="48.16131591796875" lon="11.425256729125977">
+        <name>129844</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86010</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128330&#xA;      &#xA;      &#xA;        128331&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19188690185547" lon="11.249032974243164">
+        <name>128330</name>
+      </trkpt>
+      <trkpt lat="48.19243621826172" lon="11.248899459838867">
+        <name>128331</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96430</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138108&#xA;      &#xA;      &#xA;        138109&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.28470230102539" lon="11.261801719665527">
+        <name>138108</name>
+      </trkpt>
+      <trkpt lat="48.286869049072266" lon="11.257174491882324">
+        <name>138109</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90178</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132364&#xA;      &#xA;      &#xA;        132363&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26213073730469" lon="11.475298881530762">
+        <name>132364</name>
+      </trkpt>
+      <trkpt lat="48.26237869262695" lon="11.473928451538086">
+        <name>132363</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96951</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138615&#xA;      &#xA;      &#xA;        138616&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.316226959228516" lon="11.690285682678223">
+        <name>138615</name>
+      </trkpt>
+      <trkpt lat="48.31699752807617" lon="11.690704345703125">
+        <name>138616</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105548</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147099&#xA;      &#xA;      &#xA;        147100&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12434005737305" lon="11.457630157470703">
+        <name>147099</name>
+      </trkpt>
+      <trkpt lat="48.12485885620117" lon="11.453230857849121">
+        <name>147100</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87834</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130067&#xA;      &#xA;      &#xA;        130066&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15609359741211" lon="11.41463851928711">
+        <name>130067</name>
+      </trkpt>
+      <trkpt lat="48.15623474121094" lon="11.413535118103027">
+        <name>130066</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86792</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129062&#xA;      &#xA;      &#xA;        129063&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22478103637695" lon="11.535195350646973">
+        <name>129062</name>
+      </trkpt>
+      <trkpt lat="48.22428894042969" lon="11.536967277526855">
+        <name>129063</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87574</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129844&#xA;      &#xA;      &#xA;        129845&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16131591796875" lon="11.425256729125977">
+        <name>129844</name>
+      </trkpt>
+      <trkpt lat="48.16156005859375" lon="11.424762725830078">
+        <name>129845</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86011</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128331&#xA;      &#xA;      &#xA;        128332&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19243621826172" lon="11.248899459838867">
+        <name>128331</name>
+      </trkpt>
+      <trkpt lat="48.192893981933594" lon="11.248727798461914">
+        <name>128332</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90179</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132363&#xA;      &#xA;      &#xA;        132362&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26237869262695" lon="11.473928451538086">
+        <name>132363</name>
+      </trkpt>
+      <trkpt lat="48.26258850097656" lon="11.472442626953125">
+        <name>132362</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96952</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138612&#xA;      &#xA;      &#xA;        138614&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31578063964844" lon="11.689504623413086">
+        <name>138612</name>
+      </trkpt>
+      <trkpt lat="48.31592559814453" lon="11.689943313598633">
+        <name>138614</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105288</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146833&#xA;      &#xA;      &#xA;        146851&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.052398681640625" lon="11.69119930267334">
+        <name>146833</name>
+      </trkpt>
+      <trkpt lat="48.05009078979492" lon="11.68899917602539">
+        <name>146851</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105549</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147100&#xA;      &#xA;      &#xA;        147101&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12485885620117" lon="11.453230857849121">
+        <name>147100</name>
+      </trkpt>
+      <trkpt lat="48.12556457519531" lon="11.450488090515137">
+        <name>147101</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87835</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130066&#xA;      &#xA;      &#xA;        130064&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15623474121094" lon="11.413535118103027">
+        <name>130066</name>
+      </trkpt>
+      <trkpt lat="48.15641403198242" lon="11.411934852600098">
+        <name>130064</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86793</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129063&#xA;      &#xA;      &#xA;        129064&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22428894042969" lon="11.536967277526855">
+        <name>129063</name>
+      </trkpt>
+      <trkpt lat="48.22418975830078" lon="11.538480758666992">
+        <name>129064</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87575</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129845&#xA;      &#xA;      &#xA;        129846&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16156005859375" lon="11.424762725830078">
+        <name>129845</name>
+      </trkpt>
+      <trkpt lat="48.161624908447266" lon="11.424362182617188">
+        <name>129846</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86012</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128332&#xA;      &#xA;      &#xA;        128333&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.192893981933594" lon="11.248727798461914">
+        <name>128332</name>
+      </trkpt>
+      <trkpt lat="48.19307327270508" lon="11.248823165893555">
+        <name>128333</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90180</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132362&#xA;      &#xA;      &#xA;        132361&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26258850097656" lon="11.472442626953125">
+        <name>132362</name>
+      </trkpt>
+      <trkpt lat="48.262760162353516" lon="11.470842361450195">
+        <name>132361</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96953</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138614&#xA;      &#xA;      &#xA;        138615&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31592559814453" lon="11.689943313598633">
+        <name>138614</name>
+      </trkpt>
+      <trkpt lat="48.316226959228516" lon="11.690285682678223">
+        <name>138615</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105550</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147101&#xA;      &#xA;      &#xA;        147102&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12556457519531" lon="11.450488090515137">
+        <name>147101</name>
+      </trkpt>
+      <trkpt lat="48.12554168701172" lon="11.450003623962402">
+        <name>147102</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87836</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130064&#xA;      &#xA;      &#xA;        130063&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15641403198242" lon="11.411934852600098">
+        <name>130064</name>
+      </trkpt>
+      <trkpt lat="48.15658950805664" lon="11.4102201461792">
+        <name>130063</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86794</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129064&#xA;      &#xA;      &#xA;        129065&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22418975830078" lon="11.538480758666992">
+        <name>129064</name>
+      </trkpt>
+      <trkpt lat="48.22443771362305" lon="11.539909362792969">
+        <name>129065</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87576</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129846&#xA;      &#xA;      &#xA;        129847&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.161624908447266" lon="11.424362182617188">
+        <name>129846</name>
+      </trkpt>
+      <trkpt lat="48.16154479980469" lon="11.423810005187988">
+        <name>129847</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86013</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128333&#xA;      &#xA;      &#xA;        128334&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19307327270508" lon="11.248823165893555">
+        <name>128333</name>
+      </trkpt>
+      <trkpt lat="48.193172454833984" lon="11.24867057800293">
+        <name>128334</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96433</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138109&#xA;      &#xA;      &#xA;        138110&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.286869049072266" lon="11.257174491882324">
+        <name>138109</name>
+      </trkpt>
+      <trkpt lat="48.287498474121094" lon="11.255803108215332">
+        <name>138110</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90181</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132361&#xA;      &#xA;      &#xA;        132360&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.262760162353516" lon="11.470842361450195">
+        <name>132361</name>
+      </trkpt>
+      <trkpt lat="48.262760162353516" lon="11.46955680847168">
+        <name>132360</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96954</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138616&#xA;      &#xA;      &#xA;        138617&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31699752807617" lon="11.690704345703125">
+        <name>138616</name>
+      </trkpt>
+      <trkpt lat="48.31739044189453" lon="11.688705444335938">
+        <name>138617</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105551</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147102&#xA;      &#xA;      &#xA;        147103&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12554168701172" lon="11.450003623962402">
+        <name>147102</name>
+      </trkpt>
+      <trkpt lat="48.12527847290039" lon="11.449774742126465">
+        <name>147103</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87837</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130064&#xA;      &#xA;      &#xA;        130065&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15641403198242" lon="11.411934852600098">
+        <name>130064</name>
+      </trkpt>
+      <trkpt lat="48.156654357910156" lon="11.411763191223145">
+        <name>130065</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86795</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129065&#xA;      &#xA;      &#xA;        129066&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22443771362305" lon="11.539909362792969">
+        <name>129065</name>
+      </trkpt>
+      <trkpt lat="48.22504806518555" lon="11.541051864624023">
+        <name>129066</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105030</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146578&#xA;      &#xA;      &#xA;        146581&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2041130065918" lon="11.436518669128418">
+        <name>146578</name>
+      </trkpt>
+      <trkpt lat="48.204078674316406" lon="11.438546180725098">
+        <name>146581</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87577</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129847&#xA;      &#xA;      &#xA;        129848&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16154479980469" lon="11.423810005187988">
+        <name>129847</name>
+      </trkpt>
+      <trkpt lat="48.16140365600586" lon="11.423238754272461">
+        <name>129848</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86014</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128333&#xA;      &#xA;      &#xA;        128335&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19307327270508" lon="11.248823165893555">
+        <name>128333</name>
+      </trkpt>
+      <trkpt lat="48.19309616088867" lon="11.249394416809082">
+        <name>128335</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90182</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132360&#xA;      &#xA;      &#xA;        132359&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.262760162353516" lon="11.46955680847168">
+        <name>132360</name>
+      </trkpt>
+      <trkpt lat="48.26260757446289" lon="11.469271659851074">
+        <name>132359</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96955</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138617&#xA;      &#xA;      &#xA;        138618&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31739044189453" lon="11.688705444335938">
+        <name>138617</name>
+      </trkpt>
+      <trkpt lat="48.31834411621094" lon="11.68860912322998">
+        <name>138618</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105291</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146851&#xA;      &#xA;      &#xA;        146853&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.05009078979492" lon="11.68899917602539">
+        <name>146851</name>
+      </trkpt>
+      <trkpt lat="48.04619216918945" lon="11.685856819152832">
+        <name>146853</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105552</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147103&#xA;      &#xA;      &#xA;        147104&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12527847290039" lon="11.449774742126465">
+        <name>147103</name>
+      </trkpt>
+      <trkpt lat="48.12443542480469" lon="11.449603080749512">
+        <name>147104</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87838</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130065&#xA;      &#xA;      &#xA;        130061&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.156654357910156" lon="11.411763191223145">
+        <name>130065</name>
+      </trkpt>
+      <trkpt lat="48.15736389160156" lon="11.411820411682129">
+        <name>130061</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86796</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129066&#xA;      &#xA;      &#xA;        129067&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22504806518555" lon="11.541051864624023">
+        <name>129066</name>
+      </trkpt>
+      <trkpt lat="48.225921630859375" lon="11.541851997375488">
+        <name>129067</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87578</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129848&#xA;      &#xA;      &#xA;        129849&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16140365600586" lon="11.423238754272461">
+        <name>129848</name>
+      </trkpt>
+      <trkpt lat="48.1607780456543" lon="11.423638343811035">
+        <name>129849</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86015</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128334&#xA;      &#xA;      &#xA;        128336&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.193172454833984" lon="11.24867057800293">
+        <name>128334</name>
+      </trkpt>
+      <trkpt lat="48.1929817199707" lon="11.248347282409668">
+        <name>128336</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90183</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132359&#xA;      &#xA;      &#xA;        132358&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26260757446289" lon="11.469271659851074">
+        <name>132359</name>
+      </trkpt>
+      <trkpt lat="48.26184844970703" lon="11.469328880310059">
+        <name>132358</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96956</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138561&#xA;      &#xA;      &#xA;        138619&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.317012786865234" lon="11.620813369750977">
+        <name>138561</name>
+      </trkpt>
+      <trkpt lat="48.319087982177734" lon="11.619702339172363">
+        <name>138619</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105553</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147104&#xA;      &#xA;      &#xA;        147105&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12443542480469" lon="11.449603080749512">
+        <name>147104</name>
+      </trkpt>
+      <trkpt lat="48.12415313720703" lon="11.449317932128906">
+        <name>147105</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87839</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130061&#xA;      &#xA;      &#xA;        130062&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15736389160156" lon="11.411820411682129">
+        <name>130061</name>
+      </trkpt>
+      <trkpt lat="48.157100677490234" lon="11.411153793334961">
+        <name>130062</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86797</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129067&#xA;      &#xA;      &#xA;        129068&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.225921630859375" lon="11.541851997375488">
+        <name>129067</name>
+      </trkpt>
+      <trkpt lat="48.22712326049805" lon="11.542451858520508">
+        <name>129068</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105032</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146581&#xA;      &#xA;      &#xA;        146584&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.204078674316406" lon="11.438546180725098">
+        <name>146581</name>
+      </trkpt>
+      <trkpt lat="48.20415496826172" lon="11.440888404846191">
+        <name>146584</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87579</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129849&#xA;      &#xA;      &#xA;        129850&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1607780456543" lon="11.423638343811035">
+        <name>129849</name>
+      </trkpt>
+      <trkpt lat="48.15984344482422" lon="11.42409610748291">
+        <name>129850</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86016</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128336&#xA;      &#xA;      &#xA;        128332&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1929817199707" lon="11.248347282409668">
+        <name>128336</name>
+      </trkpt>
+      <trkpt lat="48.192893981933594" lon="11.248727798461914">
+        <name>128332</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96436</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138110&#xA;      &#xA;      &#xA;        138111&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.287498474121094" lon="11.255803108215332">
+        <name>138110</name>
+      </trkpt>
+      <trkpt lat="48.288150787353516" lon="11.254003524780273">
+        <name>138111</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90184</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132358&#xA;      &#xA;      &#xA;        132357&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26184844970703" lon="11.469328880310059">
+        <name>132358</name>
+      </trkpt>
+      <trkpt lat="48.25956726074219" lon="11.46955680847168">
+        <name>132357</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96957</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138619&#xA;      &#xA;      &#xA;        138621&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.319087982177734" lon="11.619702339172363">
+        <name>138619</name>
+      </trkpt>
+      <trkpt lat="48.32093048095703" lon="11.618559837341309">
+        <name>138621</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105554</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147106&#xA;      &#xA;      &#xA;        147107&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12407684326172" lon="11.448719024658203">
+        <name>147106</name>
+      </trkpt>
+      <trkpt lat="48.12417221069336" lon="11.447118759155273">
+        <name>147107</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87840</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130062&#xA;      &#xA;      &#xA;        130063&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.157100677490234" lon="11.411153793334961">
+        <name>130062</name>
+      </trkpt>
+      <trkpt lat="48.15658950805664" lon="11.4102201461792">
+        <name>130063</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86798</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129059&#xA;      &#xA;      &#xA;        129069&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.224857330322266" lon="11.530540466308594">
+        <name>129059</name>
+      </trkpt>
+      <trkpt lat="48.225215911865234" lon="11.532767295837402">
+        <name>129069</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87580</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129850&#xA;      &#xA;      &#xA;        129851&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15984344482422" lon="11.42409610748291">
+        <name>129850</name>
+      </trkpt>
+      <trkpt lat="48.15902328491211" lon="11.4244384765625">
+        <name>129851</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86017</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128335&#xA;      &#xA;      &#xA;        128337&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19309616088867" lon="11.249394416809082">
+        <name>128335</name>
+      </trkpt>
+      <trkpt lat="48.19402313232422" lon="11.249375343322754">
+        <name>128337</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90185</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132357&#xA;      &#xA;      &#xA;        132356&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25956726074219" lon="11.46955680847168">
+        <name>132357</name>
+      </trkpt>
+      <trkpt lat="48.2574348449707" lon="11.469785690307617">
+        <name>132356</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96958</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138622&#xA;      &#xA;      &#xA;        138620&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.3209114074707" lon="11.617987632751465">
+        <name>138622</name>
+      </trkpt>
+      <trkpt lat="48.318973541259766" lon="11.61904525756836">
+        <name>138620</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105555</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147107&#xA;      &#xA;      &#xA;        147108&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12417221069336" lon="11.447118759155273">
+        <name>147107</name>
+      </trkpt>
+      <trkpt lat="48.1251220703125" lon="11.447375297546387">
+        <name>147108</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87841</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130061&#xA;      &#xA;      &#xA;        130060&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15736389160156" lon="11.411820411682129">
+        <name>130061</name>
+      </trkpt>
+      <trkpt lat="48.15772247314453" lon="11.412315368652344">
+        <name>130060</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86799</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129069&#xA;      &#xA;      &#xA;        129070&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.225215911865234" lon="11.532767295837402">
+        <name>129069</name>
+      </trkpt>
+      <trkpt lat="48.225502014160156" lon="11.534652709960938">
+        <name>129070</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86018</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128334&#xA;      &#xA;      &#xA;        128338&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.193172454833984" lon="11.24867057800293">
+        <name>128334</name>
+      </trkpt>
+      <trkpt lat="48.19343948364258" lon="11.248480796813965">
+        <name>128338</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96438</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138111&#xA;      &#xA;      &#xA;        138112&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.288150787353516" lon="11.254003524780273">
+        <name>138111</name>
+      </trkpt>
+      <trkpt lat="48.28883361816406" lon="11.251646995544434">
+        <name>138112</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90186</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132356&#xA;      &#xA;      &#xA;        132355&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2574348449707" lon="11.469785690307617">
+        <name>132356</name>
+      </trkpt>
+      <trkpt lat="48.25676727294922" lon="11.470014572143555">
+        <name>132355</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96959</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138620&#xA;      &#xA;      &#xA;        138562&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.318973541259766" lon="11.61904525756836">
+        <name>138620</name>
+      </trkpt>
+      <trkpt lat="48.31689453125" lon="11.620243072509766">
+        <name>138562</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105556</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147108&#xA;      &#xA;      &#xA;        147109&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1251220703125" lon="11.447375297546387">
+        <name>147108</name>
+      </trkpt>
+      <trkpt lat="48.12527847290039" lon="11.447260856628418">
+        <name>147109</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87842</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130060&#xA;      &#xA;      &#xA;        130059&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15772247314453" lon="11.412315368652344">
+        <name>130060</name>
+      </trkpt>
+      <trkpt lat="48.15803909301758" lon="11.41309642791748">
+        <name>130059</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86800</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129070&#xA;      &#xA;      &#xA;        129071&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.225502014160156" lon="11.534652709960938">
+        <name>129070</name>
+      </trkpt>
+      <trkpt lat="48.22574996948242" lon="11.536452293395996">
+        <name>129071</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86019</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128338&#xA;      &#xA;      &#xA;        128339&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19343948364258" lon="11.248480796813965">
+        <name>128338</name>
+      </trkpt>
+      <trkpt lat="48.19393539428711" lon="11.248213768005371">
+        <name>128339</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96439</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138112&#xA;      &#xA;      &#xA;        138116&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.28883361816406" lon="11.251646995544434">
+        <name>138112</name>
+      </trkpt>
+      <trkpt lat="48.29003143310547" lon="11.247833251953125">
+        <name>138116</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90187</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132355&#xA;      &#xA;      &#xA;        132341&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25676727294922" lon="11.470014572143555">
+        <name>132355</name>
+      </trkpt>
+      <trkpt lat="48.2557258605957" lon="11.470643043518066">
+        <name>132341</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96960</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138621&#xA;      &#xA;      &#xA;        138623&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.32093048095703" lon="11.618559837341309">
+        <name>138621</name>
+      </trkpt>
+      <trkpt lat="48.323020935058594" lon="11.617244720458984">
+        <name>138623</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105557</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147109&#xA;      &#xA;      &#xA;        147110&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12527847290039" lon="11.447260856628418">
+        <name>147109</name>
+      </trkpt>
+      <trkpt lat="48.125370025634766" lon="11.4467191696167">
+        <name>147110</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87843</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128293&#xA;      &#xA;      &#xA;        130081&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19818878173828" lon="11.296602249145508">
+        <name>128293</name>
+      </trkpt>
+      <trkpt lat="48.19988250732422" lon="11.298314094543457">
+        <name>130081</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86801</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129071&#xA;      &#xA;      &#xA;        129072&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22574996948242" lon="11.536452293395996">
+        <name>129071</name>
+      </trkpt>
+      <trkpt lat="48.22603988647461" lon="11.538566589355469">
+        <name>129072</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105036</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146584&#xA;      &#xA;      &#xA;        146587&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20415496826172" lon="11.440888404846191">
+        <name>146584</name>
+      </trkpt>
+      <trkpt lat="48.204288482666016" lon="11.4422025680542">
+        <name>146587</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87583</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129853&#xA;      &#xA;      &#xA;        129854&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15824508666992" lon="11.42487621307373">
+        <name>129853</name>
+      </trkpt>
+      <trkpt lat="48.157962799072266" lon="11.425047874450684">
+        <name>129854</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86020</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128339&#xA;      &#xA;      &#xA;        128340&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19393539428711" lon="11.248213768005371">
+        <name>128339</name>
+      </trkpt>
+      <trkpt lat="48.194480895996094" lon="11.247814178466797">
+        <name>128340</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96440</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138116&#xA;      &#xA;      &#xA;        138120&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.29003143310547" lon="11.247833251953125">
+        <name>138116</name>
+      </trkpt>
+      <trkpt lat="48.29226303100586" lon="11.240337371826172">
+        <name>138120</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96961</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138623&#xA;      &#xA;      &#xA;        138624&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.323020935058594" lon="11.617244720458984">
+        <name>138623</name>
+      </trkpt>
+      <trkpt lat="48.32594299316406" lon="11.615589141845703">
+        <name>138624</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105558</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147110&#xA;      &#xA;      &#xA;        147111&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.125370025634766" lon="11.4467191696167">
+        <name>147110</name>
+      </trkpt>
+      <trkpt lat="48.1252555847168" lon="11.444718360900879">
+        <name>147111</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87844</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130081&#xA;      &#xA;      &#xA;        130082&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19988250732422" lon="11.298314094543457">
+        <name>130081</name>
+      </trkpt>
+      <trkpt lat="48.20075988769531" lon="11.299342155456543">
+        <name>130082</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86802</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129072&#xA;      &#xA;      &#xA;        129073&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22603988647461" lon="11.538566589355469">
+        <name>129072</name>
+      </trkpt>
+      <trkpt lat="48.22649383544922" lon="11.540166854858398">
+        <name>129073</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105037</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146587&#xA;      &#xA;      &#xA;        146586&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.204288482666016" lon="11.4422025680542">
+        <name>146587</name>
+      </trkpt>
+      <trkpt lat="48.20442199707031" lon="11.443488121032715">
+        <name>146586</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87584</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129854&#xA;      &#xA;      &#xA;        129855&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.157962799072266" lon="11.425047874450684">
+        <name>129854</name>
+      </trkpt>
+      <trkpt lat="48.157814025878906" lon="11.425047874450684">
+        <name>129855</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86021</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128340&#xA;      &#xA;      &#xA;        128341&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.194480895996094" lon="11.247814178466797">
+        <name>128340</name>
+      </trkpt>
+      <trkpt lat="48.19523239135742" lon="11.246994972229004">
+        <name>128341</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96441</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138120&#xA;      &#xA;      &#xA;        138121&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.29226303100586" lon="11.240337371826172">
+        <name>138120</name>
+      </trkpt>
+      <trkpt lat="48.29417037963867" lon="11.23399543762207">
+        <name>138121</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96962</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138625&#xA;      &#xA;      &#xA;        138626&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.32604217529297" lon="11.615274429321289">
+        <name>138625</name>
+      </trkpt>
+      <trkpt lat="48.32297897338867" lon="11.616902351379395">
+        <name>138626</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105559</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147111&#xA;      &#xA;      &#xA;        147112&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1252555847168" lon="11.444718360900879">
+        <name>147111</name>
+      </trkpt>
+      <trkpt lat="48.125064849853516" lon="11.442891120910645">
+        <name>147112</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87845</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130082&#xA;      &#xA;      &#xA;        128291&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20075988769531" lon="11.299342155456543">
+        <name>130082</name>
+      </trkpt>
+      <trkpt lat="48.20134735107422" lon="11.300172805786133">
+        <name>128291</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86803</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129073&#xA;      &#xA;      &#xA;        129074&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22649383544922" lon="11.540166854858398">
+        <name>129073</name>
+      </trkpt>
+      <trkpt lat="48.22732925415039" lon="11.541537284851074">
+        <name>129074</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105038</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146586&#xA;      &#xA;      &#xA;        129001&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20442199707031" lon="11.443488121032715">
+        <name>146586</name>
+      </trkpt>
+      <trkpt lat="48.204429626464844" lon="11.445259094238281">
+        <name>129001</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87585</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129855&#xA;      &#xA;      &#xA;        129856&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.157814025878906" lon="11.425047874450684">
+        <name>129855</name>
+      </trkpt>
+      <trkpt lat="48.15774154663086" lon="11.425199508666992">
+        <name>129856</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86022</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128341&#xA;      &#xA;      &#xA;        128342&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19523239135742" lon="11.246994972229004">
+        <name>128341</name>
+      </trkpt>
+      <trkpt lat="48.195796966552734" lon="11.24621295928955">
+        <name>128342</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96442</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138121&#xA;      &#xA;      &#xA;        138122&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.29417037963867" lon="11.23399543762207">
+        <name>138121</name>
+      </trkpt>
+      <trkpt lat="48.295536041259766" lon="11.229496002197266">
+        <name>138122</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96963</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138626&#xA;      &#xA;      &#xA;        138622&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.32297897338867" lon="11.616902351379395">
+        <name>138626</name>
+      </trkpt>
+      <trkpt lat="48.3209114074707" lon="11.617987632751465">
+        <name>138622</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105560</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147112&#xA;      &#xA;      &#xA;        147113&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.125064849853516" lon="11.442891120910645">
+        <name>147112</name>
+      </trkpt>
+      <trkpt lat="48.125160217285156" lon="11.441462516784668">
+        <name>147113</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87846</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127340&#xA;      &#xA;      &#xA;        130078&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20207977294922" lon="11.300470352172852">
+        <name>127340</name>
+      </trkpt>
+      <trkpt lat="48.20100784301758" lon="11.300942420959473">
+        <name>130078</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86804</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129068&#xA;      &#xA;      &#xA;        129075&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22712326049805" lon="11.542451858520508">
+        <name>129068</name>
+      </trkpt>
+      <trkpt lat="48.228553771972656" lon="11.542908668518066">
+        <name>129075</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87586</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129856&#xA;      &#xA;      &#xA;        129857&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15774154663086" lon="11.425199508666992">
+        <name>129856</name>
+      </trkpt>
+      <trkpt lat="48.15715026855469" lon="11.425485610961914">
+        <name>129857</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86023</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128342&#xA;      &#xA;      &#xA;        128343&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.195796966552734" lon="11.24621295928955">
+        <name>128342</name>
+      </trkpt>
+      <trkpt lat="48.19757080078125" lon="11.243413925170898">
+        <name>128343</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96443</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138122&#xA;      &#xA;      &#xA;        138123&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.295536041259766" lon="11.229496002197266">
+        <name>138122</name>
+      </trkpt>
+      <trkpt lat="48.296932220458984" lon="11.225640296936035">
+        <name>138123</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96964</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138624&#xA;      &#xA;      &#xA;        138627&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.32594299316406" lon="11.615589141845703">
+        <name>138624</name>
+      </trkpt>
+      <trkpt lat="48.3292350769043" lon="11.613931655883789">
+        <name>138627</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105561</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147113&#xA;      &#xA;      &#xA;        147114&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.125160217285156" lon="11.441462516784668">
+        <name>147113</name>
+      </trkpt>
+      <trkpt lat="48.12552261352539" lon="11.439862251281738">
+        <name>147114</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87847</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130078&#xA;      &#xA;      &#xA;        130079&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20100784301758" lon="11.300942420959473">
+        <name>130078</name>
+      </trkpt>
+      <trkpt lat="48.200531005859375" lon="11.301056861877441">
+        <name>130079</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86805</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129075&#xA;      &#xA;      &#xA;        129076&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.228553771972656" lon="11.542908668518066">
+        <name>129075</name>
+      </trkpt>
+      <trkpt lat="48.2298698425293" lon="11.542994499206543">
+        <name>129076</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87587</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129857&#xA;      &#xA;      &#xA;        129858&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15715026855469" lon="11.425485610961914">
+        <name>129857</name>
+      </trkpt>
+      <trkpt lat="48.15699768066406" lon="11.424952507019043">
+        <name>129858</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86024</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128343&#xA;      &#xA;      &#xA;        128344&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19757080078125" lon="11.243413925170898">
+        <name>128343</name>
+      </trkpt>
+      <trkpt lat="48.19951629638672" lon="11.240423202514648">
+        <name>128344</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96444</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138123&#xA;      &#xA;      &#xA;        138124&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.296932220458984" lon="11.225640296936035">
+        <name>138123</name>
+      </trkpt>
+      <trkpt lat="48.29841995239258" lon="11.222168922424316">
+        <name>138124</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96965</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138627&#xA;      &#xA;      &#xA;        138628&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.3292350769043" lon="11.613931655883789">
+        <name>138627</name>
+      </trkpt>
+      <trkpt lat="48.33278274536133" lon="11.61190414428711">
+        <name>138628</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105562</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147114&#xA;      &#xA;      &#xA;        147115&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12552261352539" lon="11.439862251281738">
+        <name>147114</name>
+      </trkpt>
+      <trkpt lat="48.126399993896484" lon="11.437920570373535">
+        <name>147115</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87848</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130079&#xA;      &#xA;      &#xA;        127333&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.200531005859375" lon="11.301056861877441">
+        <name>130079</name>
+      </trkpt>
+      <trkpt lat="48.19929885864258" lon="11.301359176635742">
+        <name>127333</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86806</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129076&#xA;      &#xA;      &#xA;        129077&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2298698425293" lon="11.542994499206543">
+        <name>129076</name>
+      </trkpt>
+      <trkpt lat="48.23091125488281" lon="11.542795181274414">
+        <name>129077</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86025</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128344&#xA;      &#xA;      &#xA;        128345&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19951629638672" lon="11.240423202514648">
+        <name>128344</name>
+      </trkpt>
+      <trkpt lat="48.20021438598633" lon="11.239452362060547">
+        <name>128345</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96445</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138124&#xA;      &#xA;      &#xA;        138125&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.29841995239258" lon="11.222168922424316">
+        <name>138124</name>
+      </trkpt>
+      <trkpt lat="48.2999267578125" lon="11.219169616699219">
+        <name>138125</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96966</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138629&#xA;      &#xA;      &#xA;        138630&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.33274841308594" lon="11.611645698547363">
+        <name>138629</name>
+      </trkpt>
+      <trkpt lat="48.3292350769043" lon="11.613616943359375">
+        <name>138630</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105302</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146853&#xA;      &#xA;      &#xA;        146855&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.04619216918945" lon="11.685856819152832">
+        <name>146853</name>
+      </trkpt>
+      <trkpt lat="48.043113708496094" lon="11.683457374572754">
+        <name>146855</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87588</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129858&#xA;      &#xA;      &#xA;        129859&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15699768066406" lon="11.424952507019043">
+        <name>129858</name>
+      </trkpt>
+      <trkpt lat="48.1568717956543" lon="11.424266815185547">
+        <name>129859</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105563</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147115&#xA;      &#xA;      &#xA;        147116&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.126399993896484" lon="11.437920570373535">
+        <name>147115</name>
+      </trkpt>
+      <trkpt lat="48.126976013183594" lon="11.43697738647461">
+        <name>147116</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87849</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130081&#xA;      &#xA;      &#xA;        130076&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19988250732422" lon="11.298314094543457">
+        <name>130081</name>
+      </trkpt>
+      <trkpt lat="48.20016860961914" lon="11.298885345458984">
+        <name>130076</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89933</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130070&#xA;      &#xA;      &#xA;        132125&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15591812133789" lon="11.417476654052734">
+        <name>130070</name>
+      </trkpt>
+      <trkpt lat="48.155338287353516" lon="11.417689323425293">
+        <name>132125</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86807</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129077&#xA;      &#xA;      &#xA;        129078&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23091125488281" lon="11.542795181274414">
+        <name>129077</name>
+      </trkpt>
+      <trkpt lat="48.23218536376953" lon="11.542280197143555">
+        <name>129078</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86026</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128345&#xA;      &#xA;      &#xA;        128346&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20021438598633" lon="11.239452362060547">
+        <name>128345</name>
+      </trkpt>
+      <trkpt lat="48.20093536376953" lon="11.238710403442383">
+        <name>128346</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96446</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138125&#xA;      &#xA;      &#xA;        138126&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2999267578125" lon="11.219169616699219">
+        <name>138125</name>
+      </trkpt>
+      <trkpt lat="48.30181121826172" lon="11.21595573425293">
+        <name>138126</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96967</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138630&#xA;      &#xA;      &#xA;        138625&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.3292350769043" lon="11.613616943359375">
+        <name>138630</name>
+      </trkpt>
+      <trkpt lat="48.32604217529297" lon="11.615274429321289">
+        <name>138625</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105303</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146855&#xA;      &#xA;      &#xA;        146856&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.043113708496094" lon="11.683457374572754">
+        <name>146855</name>
+      </trkpt>
+      <trkpt lat="48.03994369506836" lon="11.68051528930664">
+        <name>146856</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105564</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147116&#xA;      &#xA;      &#xA;        147117&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.126976013183594" lon="11.43697738647461">
+        <name>147116</name>
+      </trkpt>
+      <trkpt lat="48.12785339355469" lon="11.435206413269043">
+        <name>147117</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87850</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130076&#xA;      &#xA;      &#xA;        130077&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20016860961914" lon="11.298885345458984">
+        <name>130076</name>
+      </trkpt>
+      <trkpt lat="48.20030212402344" lon="11.299656867980957">
+        <name>130077</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89934</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132125&#xA;      &#xA;      &#xA;        132126&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155338287353516" lon="11.417689323425293">
+        <name>132125</name>
+      </trkpt>
+      <trkpt lat="48.15467834472656" lon="11.418012619018555">
+        <name>132126</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86808</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129078&#xA;      &#xA;      &#xA;        129079&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23218536376953" lon="11.542280197143555">
+        <name>129078</name>
+      </trkpt>
+      <trkpt lat="48.23326873779297" lon="11.541594505310059">
+        <name>129079</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86027</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128346&#xA;      &#xA;      &#xA;        128347&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20093536376953" lon="11.238710403442383">
+        <name>128346</name>
+      </trkpt>
+      <trkpt lat="48.202003479003906" lon="11.238004684448242">
+        <name>128347</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96447</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138126&#xA;      &#xA;      &#xA;        138129&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.30181121826172" lon="11.21595573425293">
+        <name>138126</name>
+      </trkpt>
+      <trkpt lat="48.304744720458984" lon="11.211669921875">
+        <name>138129</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96968</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138628&#xA;      &#xA;      &#xA;        138631&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.33278274536133" lon="11.61190414428711">
+        <name>138628</name>
+      </trkpt>
+      <trkpt lat="48.336181640625" lon="11.609932899475098">
+        <name>138631</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105565</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147117&#xA;      &#xA;      &#xA;        147119&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12785339355469" lon="11.435206413269043">
+        <name>147117</name>
+      </trkpt>
+      <trkpt lat="48.12855529785156" lon="11.433406829833984">
+        <name>147119</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87851</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130077&#xA;      &#xA;      &#xA;        130079&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20030212402344" lon="11.299656867980957">
+        <name>130077</name>
+      </trkpt>
+      <trkpt lat="48.200531005859375" lon="11.301056861877441">
+        <name>130079</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89935</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132126&#xA;      &#xA;      &#xA;        132127&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15467834472656" lon="11.418012619018555">
+        <name>132126</name>
+      </trkpt>
+      <trkpt lat="48.1536865234375" lon="11.418755531311035">
+        <name>132127</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86809</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129084&#xA;      &#xA;      &#xA;        129083&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23321533203125" lon="11.541280746459961">
+        <name>129084</name>
+      </trkpt>
+      <trkpt lat="48.23203659057617" lon="11.542080879211426">
+        <name>129083</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86028</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128347&#xA;      &#xA;      &#xA;        128348&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.202003479003906" lon="11.238004684448242">
+        <name>128347</name>
+      </trkpt>
+      <trkpt lat="48.20294189453125" lon="11.237719535827637">
+        <name>128348</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96448</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138129&#xA;      &#xA;      &#xA;        138131&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.304744720458984" lon="11.211669921875">
+        <name>138129</name>
+      </trkpt>
+      <trkpt lat="48.30753707885742" lon="11.20755672454834">
+        <name>138131</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96969</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138631&#xA;      &#xA;      &#xA;        138632&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.336181640625" lon="11.609932899475098">
+        <name>138631</name>
+      </trkpt>
+      <trkpt lat="48.33926010131836" lon="11.608189582824707">
+        <name>138632</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87591</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129861&#xA;      &#xA;      &#xA;        128282&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15625" lon="11.421810150146484">
+        <name>129861</name>
+      </trkpt>
+      <trkpt lat="48.155765533447266" lon="11.4202299118042">
+        <name>128282</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105566</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147119&#xA;      &#xA;      &#xA;        147121&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12855529785156" lon="11.433406829833984">
+        <name>147119</name>
+      </trkpt>
+      <trkpt lat="48.12887954711914" lon="11.43274974822998">
+        <name>147121</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87852</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130077&#xA;      &#xA;      &#xA;        130080&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20030212402344" lon="11.299656867980957">
+        <name>130077</name>
+      </trkpt>
+      <trkpt lat="48.200435638427734" lon="11.299285888671875">
+        <name>130080</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89936</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132127&#xA;      &#xA;      &#xA;        132128&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1536865234375" lon="11.418755531311035">
+        <name>132127</name>
+      </trkpt>
+      <trkpt lat="48.153141021728516" lon="11.419193267822266">
+        <name>132128</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86810</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129083&#xA;      &#xA;      &#xA;        129082&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23203659057617" lon="11.542080879211426">
+        <name>129083</name>
+      </trkpt>
+      <trkpt lat="48.230796813964844" lon="11.542594909667969">
+        <name>129082</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86029</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128348&#xA;      &#xA;      &#xA;        128349&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20294189453125" lon="11.237719535827637">
+        <name>128348</name>
+      </trkpt>
+      <trkpt lat="48.203948974609375" lon="11.237662315368652">
+        <name>128349</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96970</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138633&#xA;      &#xA;      &#xA;        138634&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.339447021484375" lon="11.607789993286133">
+        <name>138633</name>
+      </trkpt>
+      <trkpt lat="48.33603286743164" lon="11.609761238098145">
+        <name>138634</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105306</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146856&#xA;      &#xA;      &#xA;        146864&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03994369506836" lon="11.68051528930664">
+        <name>146856</name>
+      </trkpt>
+      <trkpt lat="48.038185119628906" lon="11.678544044494629">
+        <name>146864</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105567</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147121&#xA;      &#xA;      &#xA;        147122&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12887954711914" lon="11.43274974822998">
+        <name>147121</name>
+      </trkpt>
+      <trkpt lat="48.12916564941406" lon="11.432292938232422">
+        <name>147122</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87853</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130080&#xA;      &#xA;      &#xA;        130082&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.200435638427734" lon="11.299285888671875">
+        <name>130080</name>
+      </trkpt>
+      <trkpt lat="48.20075988769531" lon="11.299342155456543">
+        <name>130082</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89937</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132128&#xA;      &#xA;      &#xA;        132129&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.153141021728516" lon="11.419193267822266">
+        <name>132128</name>
+      </trkpt>
+      <trkpt lat="48.15254211425781" lon="11.419535636901855">
+        <name>132129</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86811</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129082&#xA;      &#xA;      &#xA;        129081&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.230796813964844" lon="11.542594909667969">
+        <name>129082</name>
+      </trkpt>
+      <trkpt lat="48.22978973388672" lon="11.542709350585938">
+        <name>129081</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86030</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128349&#xA;      &#xA;      &#xA;        128350&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.203948974609375" lon="11.237662315368652">
+        <name>128349</name>
+      </trkpt>
+      <trkpt lat="48.20558166503906" lon="11.237890243530273">
+        <name>128350</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96450</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138131&#xA;      &#xA;      &#xA;        138136&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.30753707885742" lon="11.20755672454834">
+        <name>138131</name>
+      </trkpt>
+      <trkpt lat="48.31004333496094" lon="11.203957557678223">
+        <name>138136</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96971</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138634&#xA;      &#xA;      &#xA;        138629&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.33603286743164" lon="11.609761238098145">
+        <name>138634</name>
+      </trkpt>
+      <trkpt lat="48.33274841308594" lon="11.611645698547363">
+        <name>138629</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105568</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147122&#xA;      &#xA;      &#xA;        147123&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12916564941406" lon="11.432292938232422">
+        <name>147122</name>
+      </trkpt>
+      <trkpt lat="48.12941360473633" lon="11.431607246398926">
+        <name>147123</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87854</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127421&#xA;      &#xA;      &#xA;        130083&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22435760498047" lon="11.333263397216797">
+        <name>127421</name>
+      </trkpt>
+      <trkpt lat="48.22392272949219" lon="11.33389949798584">
+        <name>130083</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89938</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132129&#xA;      &#xA;      &#xA;        132130&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15254211425781" lon="11.419535636901855">
+        <name>132129</name>
+      </trkpt>
+      <trkpt lat="48.151954650878906" lon="11.419822692871094">
+        <name>132130</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86812</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129081&#xA;      &#xA;      &#xA;        129080&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22978973388672" lon="11.542709350585938">
+        <name>129081</name>
+      </trkpt>
+      <trkpt lat="48.22850036621094" lon="11.542451858520508">
+        <name>129080</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86031</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128350&#xA;      &#xA;      &#xA;        128351&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20558166503906" lon="11.237890243530273">
+        <name>128350</name>
+      </trkpt>
+      <trkpt lat="48.209747314453125" lon="11.238471984863281">
+        <name>128351</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105308</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146864&#xA;      &#xA;      &#xA;        146866&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.038185119628906" lon="11.678544044494629">
+        <name>146864</name>
+      </trkpt>
+      <trkpt lat="48.03583526611328" lon="11.675544738769531">
+        <name>146866</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105569</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147123&#xA;      &#xA;      &#xA;        147124&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12941360473633" lon="11.431607246398926">
+        <name>147123</name>
+      </trkpt>
+      <trkpt lat="48.12947463989258" lon="11.43083667755127">
+        <name>147124</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87855</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130083&#xA;      &#xA;      &#xA;        130084&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22392272949219" lon="11.33389949798584">
+        <name>130083</name>
+      </trkpt>
+      <trkpt lat="48.22356414794922" lon="11.334908485412598">
+        <name>130084</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89939</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132130&#xA;      &#xA;      &#xA;        132131&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.151954650878906" lon="11.419822692871094">
+        <name>132130</name>
+      </trkpt>
+      <trkpt lat="48.15016174316406" lon="11.42050838470459">
+        <name>132131</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86813</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129080&#xA;      &#xA;      &#xA;        129074&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22850036621094" lon="11.542451858520508">
+        <name>129080</name>
+      </trkpt>
+      <trkpt lat="48.22732925415039" lon="11.541537284851074">
+        <name>129074</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87595</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129864&#xA;      &#xA;      &#xA;        129865&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155853271484375" lon="11.42308235168457">
+        <name>129864</name>
+      </trkpt>
+      <trkpt lat="48.15622329711914" lon="11.42282772064209">
+        <name>129865</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86032</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128351&#xA;      &#xA;      &#xA;        128352&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.209747314453125" lon="11.238471984863281">
+        <name>128351</name>
+      </trkpt>
+      <trkpt lat="48.21080017089844" lon="11.238614082336426">
+        <name>128352</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105570</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147124&#xA;      &#xA;      &#xA;        147125&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12947463989258" lon="11.43083667755127">
+        <name>147124</name>
+      </trkpt>
+      <trkpt lat="48.12955093383789" lon="11.430464744567871">
+        <name>147125</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87856</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130084&#xA;      &#xA;      &#xA;        127441&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22356414794922" lon="11.334908485412598">
+        <name>130084</name>
+      </trkpt>
+      <trkpt lat="48.22355651855469" lon="11.335321426391602">
+        <name>127441</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89940</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132131&#xA;      &#xA;      &#xA;        132132&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15016174316406" lon="11.42050838470459">
+        <name>132131</name>
+      </trkpt>
+      <trkpt lat="48.14902114868164" lon="11.420907974243164">
+        <name>132132</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86814</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129079&#xA;      &#xA;      &#xA;        129085&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23326873779297" lon="11.541594505310059">
+        <name>129079</name>
+      </trkpt>
+      <trkpt lat="48.23569107055664" lon="11.539652824401855">
+        <name>129085</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86033</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128352&#xA;      &#xA;      &#xA;        128353&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21080017089844" lon="11.238614082336426">
+        <name>128352</name>
+      </trkpt>
+      <trkpt lat="48.21095657348633" lon="11.238823890686035">
+        <name>128353</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105571</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147125&#xA;      &#xA;      &#xA;        147126&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12955093383789" lon="11.430464744567871">
+        <name>147125</name>
+      </trkpt>
+      <trkpt lat="48.13019561767578" lon="11.428665161132812">
+        <name>147126</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87857</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130084&#xA;      &#xA;      &#xA;        130085&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22356414794922" lon="11.334908485412598">
+        <name>130084</name>
+      </trkpt>
+      <trkpt lat="48.223323822021484" lon="11.334794998168945">
+        <name>130085</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89941</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132132&#xA;      &#xA;      &#xA;        132133&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14902114868164" lon="11.420907974243164">
+        <name>132132</name>
+      </trkpt>
+      <trkpt lat="48.14790725708008" lon="11.421308517456055">
+        <name>132133</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86815</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129085&#xA;      &#xA;      &#xA;        129086&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23569107055664" lon="11.539652824401855">
+        <name>129085</name>
+      </trkpt>
+      <trkpt lat="48.23826217651367" lon="11.537595748901367">
+        <name>129086</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105311</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146866&#xA;      &#xA;      &#xA;        146868&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03583526611328" lon="11.675544738769531">
+        <name>146866</name>
+      </trkpt>
+      <trkpt lat="48.033294677734375" lon="11.671517372131348">
+        <name>146868</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87597</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129863&#xA;      &#xA;      &#xA;        129869&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15543746948242" lon="11.423273086547852">
+        <name>129863</name>
+      </trkpt>
+      <trkpt lat="48.1557502746582" lon="11.423044204711914">
+        <name>129869</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86034</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128353&#xA;      &#xA;      &#xA;        128354&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21095657348633" lon="11.238823890686035">
+        <name>128353</name>
+      </trkpt>
+      <trkpt lat="48.21115493774414" lon="11.238690376281738">
+        <name>128354</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105572</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147126&#xA;      &#xA;      &#xA;        147127&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13019561767578" lon="11.428665161132812">
+        <name>147126</name>
+      </trkpt>
+      <trkpt lat="48.13046646118164" lon="11.42849349975586">
+        <name>147127</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87858</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130085&#xA;      &#xA;      &#xA;        130086&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.223323822021484" lon="11.334794998168945">
+        <name>130085</name>
+      </trkpt>
+      <trkpt lat="48.22309494018555" lon="11.334261894226074">
+        <name>130086</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89942</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132133&#xA;      &#xA;      &#xA;        132134&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14790725708008" lon="11.421308517456055">
+        <name>132133</name>
+      </trkpt>
+      <trkpt lat="48.14714050292969" lon="11.421631813049316">
+        <name>132134</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86816</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129087&#xA;      &#xA;      &#xA;        129088&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23812484741211" lon="11.537338256835938">
+        <name>129087</name>
+      </trkpt>
+      <trkpt lat="48.23550033569336" lon="11.53945255279541">
+        <name>129088</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105051</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146602&#xA;      &#xA;      &#xA;        129071&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2260856628418" lon="11.539873123168945">
+        <name>146602</name>
+      </trkpt>
+      <trkpt lat="48.22574996948242" lon="11.536452293395996">
+        <name>129071</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87598</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129869&#xA;      &#xA;      &#xA;        129864&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1557502746582" lon="11.423044204711914">
+        <name>129869</name>
+      </trkpt>
+      <trkpt lat="48.155853271484375" lon="11.42308235168457">
+        <name>129864</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86035</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128354&#xA;      &#xA;      &#xA;        128355&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21115493774414" lon="11.238690376281738">
+        <name>128354</name>
+      </trkpt>
+      <trkpt lat="48.211029052734375" lon="11.238327980041504">
+        <name>128355</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105573</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147127&#xA;      &#xA;      &#xA;        147128&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13046646118164" lon="11.42849349975586">
+        <name>147127</name>
+      </trkpt>
+      <trkpt lat="48.131263732910156" lon="11.428522109985352">
+        <name>147128</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87859</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130086&#xA;      &#xA;      &#xA;        130087&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22309494018555" lon="11.334261894226074">
+        <name>130086</name>
+      </trkpt>
+      <trkpt lat="48.22285842895508" lon="11.333271026611328">
+        <name>130087</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89943</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132134&#xA;      &#xA;      &#xA;        132135&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14714050292969" lon="11.421631813049316">
+        <name>132134</name>
+      </trkpt>
+      <trkpt lat="48.146888732910156" lon="11.421669960021973">
+        <name>132135</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86817</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129088&#xA;      &#xA;      &#xA;        129084&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23550033569336" lon="11.53945255279541">
+        <name>129088</name>
+      </trkpt>
+      <trkpt lat="48.23321533203125" lon="11.541280746459961">
+        <name>129084</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87599</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129869&#xA;      &#xA;      &#xA;        129864&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1557502746582" lon="11.423044204711914">
+        <name>129869</name>
+      </trkpt>
+      <trkpt lat="48.155853271484375" lon="11.42308235168457">
+        <name>129864</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86036</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128355&#xA;      &#xA;      &#xA;        128352&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.211029052734375" lon="11.238327980041504">
+        <name>128355</name>
+      </trkpt>
+      <trkpt lat="48.21080017089844" lon="11.238614082336426">
+        <name>128352</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105574</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147128&#xA;      &#xA;      &#xA;        147129&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.131263732910156" lon="11.428522109985352">
+        <name>147128</name>
+      </trkpt>
+      <trkpt lat="48.13139724731445" lon="11.4284086227417">
+        <name>147129</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87860</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130087&#xA;      &#xA;      &#xA;        130088&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22285842895508" lon="11.333271026611328">
+        <name>130087</name>
+      </trkpt>
+      <trkpt lat="48.222591400146484" lon="11.332795143127441">
+        <name>130088</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89944</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132135&#xA;      &#xA;      &#xA;        132136&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.146888732910156" lon="11.421669960021973">
+        <name>132135</name>
+      </trkpt>
+      <trkpt lat="48.146366119384766" lon="11.421955108642578">
+        <name>132136</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86818</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129086&#xA;      &#xA;      &#xA;        129089&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23826217651367" lon="11.537595748901367">
+        <name>129086</name>
+      </trkpt>
+      <trkpt lat="48.24143600463867" lon="11.535510063171387">
+        <name>129089</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87600</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128288&#xA;      &#xA;      &#xA;        129868&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155555725097656" lon="11.42264175415039">
+        <name>128288</name>
+      </trkpt>
+      <trkpt lat="48.155643463134766" lon="11.422701835632324">
+        <name>129868</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86037</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128354&#xA;      &#xA;      &#xA;        128356&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21115493774414" lon="11.238690376281738">
+        <name>128354</name>
+      </trkpt>
+      <trkpt lat="48.211849212646484" lon="11.238747596740723">
+        <name>128356</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105575</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147129&#xA;      &#xA;      &#xA;        147130&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13139724731445" lon="11.4284086227417">
+        <name>147129</name>
+      </trkpt>
+      <trkpt lat="48.1318359375" lon="11.427037239074707">
+        <name>147130</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87861</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130088&#xA;      &#xA;      &#xA;        130089&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.222591400146484" lon="11.332795143127441">
+        <name>130088</name>
+      </trkpt>
+      <trkpt lat="48.22214126586914" lon="11.3317289352417">
+        <name>130089</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89945</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132136&#xA;      &#xA;      &#xA;        132137&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.146366119384766" lon="11.421955108642578">
+        <name>132136</name>
+      </trkpt>
+      <trkpt lat="48.14573287963867" lon="11.422355651855469">
+        <name>132137</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86819</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129087&#xA;      &#xA;      &#xA;        129090&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23812484741211" lon="11.537338256835938">
+        <name>129087</name>
+      </trkpt>
+      <trkpt lat="48.241397857666016" lon="11.535138130187988">
+        <name>129090</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87601</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128289&#xA;      &#xA;      &#xA;        129868&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15562057495117" lon="11.422557830810547">
+        <name>128289</name>
+      </trkpt>
+      <trkpt lat="48.155643463134766" lon="11.422701835632324">
+        <name>129868</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86038</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128356&#xA;      &#xA;      &#xA;        128357&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.211849212646484" lon="11.238747596740723">
+        <name>128356</name>
+      </trkpt>
+      <trkpt lat="48.213409423828125" lon="11.238956451416016">
+        <name>128357</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105576</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147130&#xA;      &#xA;      &#xA;        147131&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1318359375" lon="11.427037239074707">
+        <name>147130</name>
+      </trkpt>
+      <trkpt lat="48.13248825073242" lon="11.425494194030762">
+        <name>147131</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87862</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130089&#xA;      &#xA;      &#xA;        130090&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22214126586914" lon="11.3317289352417">
+        <name>130089</name>
+      </trkpt>
+      <trkpt lat="48.22149658203125" lon="11.329957962036133">
+        <name>130090</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89946</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132137&#xA;      &#xA;      &#xA;        132138&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14573287963867" lon="11.422355651855469">
+        <name>132137</name>
+      </trkpt>
+      <trkpt lat="48.14500045776367" lon="11.422831535339355">
+        <name>132138</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86820</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129089&#xA;      &#xA;      &#xA;        129091&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24143600463867" lon="11.535510063171387">
+        <name>129089</name>
+      </trkpt>
+      <trkpt lat="48.244693756103516" lon="11.533967971801758">
+        <name>129091</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>84997</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127340&#xA;      &#xA;      &#xA;        127349&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20207977294922" lon="11.300470352172852">
+        <name>127340</name>
+      </trkpt>
+      <trkpt lat="48.203460693359375" lon="11.299504280090332">
+        <name>127349</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105316</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146868&#xA;      &#xA;      &#xA;        146869&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.033294677734375" lon="11.671517372131348">
+        <name>146868</name>
+      </trkpt>
+      <trkpt lat="48.03167724609375" lon="11.668488502502441">
+        <name>146869</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87602</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129868&#xA;      &#xA;      &#xA;        129869&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155643463134766" lon="11.422701835632324">
+        <name>129868</name>
+      </trkpt>
+      <trkpt lat="48.1557502746582" lon="11.423044204711914">
+        <name>129869</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86039</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128357&#xA;      &#xA;      &#xA;        128358&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.213409423828125" lon="11.238956451416016">
+        <name>128357</name>
+      </trkpt>
+      <trkpt lat="48.21419906616211" lon="11.239148139953613">
+        <name>128358</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105577</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147131&#xA;      &#xA;      &#xA;        147132&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13248825073242" lon="11.425494194030762">
+        <name>147131</name>
+      </trkpt>
+      <trkpt lat="48.13288497924805" lon="11.424598693847656">
+        <name>147132</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87863</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127415&#xA;      &#xA;      &#xA;        130091&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22488784790039" lon="11.334197044372559">
+        <name>127415</name>
+      </trkpt>
+      <trkpt lat="48.225128173828125" lon="11.334737777709961">
+        <name>130091</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89947</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132138&#xA;      &#xA;      &#xA;        132139&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14500045776367" lon="11.422831535339355">
+        <name>132138</name>
+      </trkpt>
+      <trkpt lat="48.14375305175781" lon="11.423383712768555">
+        <name>132139</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86821</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129091&#xA;      &#xA;      &#xA;        129092&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.244693756103516" lon="11.533967971801758">
+        <name>129091</name>
+      </trkpt>
+      <trkpt lat="48.247257232666016" lon="11.533167839050293">
+        <name>129092</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105317</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146869&#xA;      &#xA;      &#xA;        146870&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03167724609375" lon="11.668488502502441">
+        <name>146869</name>
+      </trkpt>
+      <trkpt lat="48.029781341552734" lon="11.664346694946289">
+        <name>146870</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87603</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129868&#xA;      &#xA;      &#xA;        129866&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155643463134766" lon="11.422701835632324">
+        <name>129868</name>
+      </trkpt>
+      <trkpt lat="48.15615463256836" lon="11.422321319580078">
+        <name>129866</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86040</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128358&#xA;      &#xA;      &#xA;        128359&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21419906616211" lon="11.239148139953613">
+        <name>128358</name>
+      </trkpt>
+      <trkpt lat="48.21501159667969" lon="11.239585876464844">
+        <name>128359</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105578</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147132&#xA;      &#xA;      &#xA;        147133&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13288497924805" lon="11.424598693847656">
+        <name>147132</name>
+      </trkpt>
+      <trkpt lat="48.133026123046875" lon="11.424561500549316">
+        <name>147133</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87864</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130091&#xA;      &#xA;      &#xA;        127414&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.225128173828125" lon="11.334737777709961">
+        <name>130091</name>
+      </trkpt>
+      <trkpt lat="48.22465896606445" lon="11.334139823913574">
+        <name>127414</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89948</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132137&#xA;      &#xA;      &#xA;        132153&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14573287963867" lon="11.422355651855469">
+        <name>132137</name>
+      </trkpt>
+      <trkpt lat="48.14543151855469" lon="11.421003341674805">
+        <name>132153</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86822</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129094&#xA;      &#xA;      &#xA;        129093&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.247169494628906" lon="11.532854080200195">
+        <name>129094</name>
+      </trkpt>
+      <trkpt lat="48.244537353515625" lon="11.533624649047852">
+        <name>129093</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105057</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146602&#xA;      &#xA;      &#xA;        146606&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2260856628418" lon="11.539873123168945">
+        <name>146602</name>
+      </trkpt>
+      <trkpt lat="48.22639846801758" lon="11.543713569641113">
+        <name>146606</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96461</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138136&#xA;      &#xA;      &#xA;        138141&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31004333496094" lon="11.203957557678223">
+        <name>138136</name>
+      </trkpt>
+      <trkpt lat="48.31278610229492" lon="11.199844360351562">
+        <name>138141</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105318</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146870&#xA;      &#xA;      &#xA;        146871&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.029781341552734" lon="11.664346694946289">
+        <name>146870</name>
+      </trkpt>
+      <trkpt lat="48.027679443359375" lon="11.658404350280762">
+        <name>146871</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86041</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128359&#xA;      &#xA;      &#xA;        128360&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21501159667969" lon="11.239585876464844">
+        <name>128359</name>
+      </trkpt>
+      <trkpt lat="48.21591567993164" lon="11.240405082702637">
+        <name>128360</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105579</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147133&#xA;      &#xA;      &#xA;        147134&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.133026123046875" lon="11.424561500549316">
+        <name>147133</name>
+      </trkpt>
+      <trkpt lat="48.133216857910156" lon="11.424808502197266">
+        <name>147134</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87865</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130091&#xA;      &#xA;      &#xA;        130092&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.225128173828125" lon="11.334737777709961">
+        <name>130091</name>
+      </trkpt>
+      <trkpt lat="48.22615432739258" lon="11.336394309997559">
+        <name>130092</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89949</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132153&#xA;      &#xA;      &#xA;        132152&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14543151855469" lon="11.421003341674805">
+        <name>132153</name>
+      </trkpt>
+      <trkpt lat="48.14508819580078" lon="11.420185089111328">
+        <name>132152</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86823</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129093&#xA;      &#xA;      &#xA;        129090&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.244537353515625" lon="11.533624649047852">
+        <name>129093</name>
+      </trkpt>
+      <trkpt lat="48.241397857666016" lon="11.535138130187988">
+        <name>129090</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105058</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146606&#xA;      &#xA;      &#xA;        146607&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22639846801758" lon="11.543713569641113">
+        <name>146606</name>
+      </trkpt>
+      <trkpt lat="48.22660827636719" lon="11.547627449035645">
+        <name>146607</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96462</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138141&#xA;      &#xA;      &#xA;        138143&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31278610229492" lon="11.199844360351562">
+        <name>138141</name>
+      </trkpt>
+      <trkpt lat="48.31501007080078" lon="11.196331024169922">
+        <name>138143</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85000</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127349&#xA;      &#xA;      &#xA;        127350&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.203460693359375" lon="11.299504280090332">
+        <name>127349</name>
+      </trkpt>
+      <trkpt lat="48.203651428222656" lon="11.299872398376465">
+        <name>127350</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86042</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128360&#xA;      &#xA;      &#xA;        128361&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21591567993164" lon="11.240405082702637">
+        <name>128360</name>
+      </trkpt>
+      <trkpt lat="48.216712951660156" lon="11.241509437561035">
+        <name>128361</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105580</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147134&#xA;      &#xA;      &#xA;        147135&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.133216857910156" lon="11.424808502197266">
+        <name>147134</name>
+      </trkpt>
+      <trkpt lat="48.133419036865234" lon="11.424808502197266">
+        <name>147135</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87866</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130092&#xA;      &#xA;      &#xA;        130093&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22615432739258" lon="11.336394309997559">
+        <name>130092</name>
+      </trkpt>
+      <trkpt lat="48.227508544921875" lon="11.338822364807129">
+        <name>130093</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89950</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132152&#xA;      &#xA;      &#xA;        132151&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14508819580078" lon="11.420185089111328">
+        <name>132152</name>
+      </trkpt>
+      <trkpt lat="48.14470672607422" lon="11.419593811035156">
+        <name>132151</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86824</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129092&#xA;      &#xA;      &#xA;        129095&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.247257232666016" lon="11.533167839050293">
+        <name>129092</name>
+      </trkpt>
+      <trkpt lat="48.25026321411133" lon="11.532824516296387">
+        <name>129095</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96463</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138143&#xA;      &#xA;      &#xA;        138148&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31501007080078" lon="11.196331024169922">
+        <name>138143</name>
+      </trkpt>
+      <trkpt lat="48.316890716552734" lon="11.193074226379395">
+        <name>138148</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86043</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128361&#xA;      &#xA;      &#xA;        128362&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.216712951660156" lon="11.241509437561035">
+        <name>128361</name>
+      </trkpt>
+      <trkpt lat="48.2172737121582" lon="11.24308967590332">
+        <name>128362</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105581</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147135&#xA;      &#xA;      &#xA;        147136&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.133419036865234" lon="11.424808502197266">
+        <name>147135</name>
+      </trkpt>
+      <trkpt lat="48.13386535644531" lon="11.424636840820312">
+        <name>147136</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87867</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130093&#xA;      &#xA;      &#xA;        130094&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.227508544921875" lon="11.338822364807129">
+        <name>130093</name>
+      </trkpt>
+      <trkpt lat="48.228668212890625" lon="11.340964317321777">
+        <name>130094</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89951</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132151&#xA;      &#xA;      &#xA;        132150&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14470672607422" lon="11.419593811035156">
+        <name>132151</name>
+      </trkpt>
+      <trkpt lat="48.14417266845703" lon="11.418928146362305">
+        <name>132150</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86825</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129094&#xA;      &#xA;      &#xA;        129096&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.247169494628906" lon="11.532854080200195">
+        <name>129094</name>
+      </trkpt>
+      <trkpt lat="48.250244140625" lon="11.532453536987305">
+        <name>129096</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105060</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146607&#xA;      &#xA;      &#xA;        146608&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22660827636719" lon="11.547627449035645">
+        <name>146607</name>
+      </trkpt>
+      <trkpt lat="48.226741790771484" lon="11.552311897277832">
+        <name>146608</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96464</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138148&#xA;      &#xA;      &#xA;        138149&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.316890716552734" lon="11.193074226379395">
+        <name>138148</name>
+      </trkpt>
+      <trkpt lat="48.31874084472656" lon="11.189688682556152">
+        <name>138149</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85002</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127350&#xA;      &#xA;      &#xA;        127353&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.203651428222656" lon="11.299872398376465">
+        <name>127350</name>
+      </trkpt>
+      <trkpt lat="48.20361328125" lon="11.300317764282227">
+        <name>127353</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86044</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128362&#xA;      &#xA;      &#xA;        128363&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2172737121582" lon="11.24308967590332">
+        <name>128362</name>
+      </trkpt>
+      <trkpt lat="48.21764373779297" lon="11.245223045349121">
+        <name>128363</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105582</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147136&#xA;      &#xA;      &#xA;        147137&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13386535644531" lon="11.424636840820312">
+        <name>147136</name>
+      </trkpt>
+      <trkpt lat="48.1344108581543" lon="11.424732208251953">
+        <name>147137</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87868</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130094&#xA;      &#xA;      &#xA;        130095&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.228668212890625" lon="11.340964317321777">
+        <name>130094</name>
+      </trkpt>
+      <trkpt lat="48.22981262207031" lon="11.343421936035156">
+        <name>130095</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89952</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132150&#xA;      &#xA;      &#xA;        132149&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14417266845703" lon="11.418928146362305">
+        <name>132150</name>
+      </trkpt>
+      <trkpt lat="48.143917083740234" lon="11.418279647827148">
+        <name>132149</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86826</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129095&#xA;      &#xA;      &#xA;        129097&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25026321411133" lon="11.532824516296387">
+        <name>129095</name>
+      </trkpt>
+      <trkpt lat="48.25324630737305" lon="11.532938957214355">
+        <name>129097</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85003</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127353&#xA;      &#xA;      &#xA;        127357&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20361328125" lon="11.300317764282227">
+        <name>127353</name>
+      </trkpt>
+      <trkpt lat="48.20293426513672" lon="11.301790237426758">
+        <name>127357</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86045</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128363&#xA;      &#xA;      &#xA;        128364&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21764373779297" lon="11.245223045349121">
+        <name>128363</name>
+      </trkpt>
+      <trkpt lat="48.21786880493164" lon="11.247032165527344">
+        <name>128364</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105583</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147137&#xA;      &#xA;      &#xA;        147138&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1344108581543" lon="11.424732208251953">
+        <name>147137</name>
+      </trkpt>
+      <trkpt lat="48.13496780395508" lon="11.425169944763184">
+        <name>147138</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87869</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130095&#xA;      &#xA;      &#xA;        130096&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22981262207031" lon="11.343421936035156">
+        <name>130095</name>
+      </trkpt>
+      <trkpt lat="48.23087692260742" lon="11.345593452453613">
+        <name>130096</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89953</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132149&#xA;      &#xA;      &#xA;        132148&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.143917083740234" lon="11.418279647827148">
+        <name>132149</name>
+      </trkpt>
+      <trkpt lat="48.14376449584961" lon="11.41757583618164">
+        <name>132148</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86046</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128364&#xA;      &#xA;      &#xA;        128365&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21786880493164" lon="11.247032165527344">
+        <name>128364</name>
+      </trkpt>
+      <trkpt lat="48.218231201171875" lon="11.248766899108887">
+        <name>128365</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105584</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147138&#xA;      &#xA;      &#xA;        147139&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13496780395508" lon="11.425169944763184">
+        <name>147138</name>
+      </trkpt>
+      <trkpt lat="48.13529968261719" lon="11.425589561462402">
+        <name>147139</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87870</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130096&#xA;      &#xA;      &#xA;        129902&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23087692260742" lon="11.345593452453613">
+        <name>130096</name>
+      </trkpt>
+      <trkpt lat="48.23162078857422" lon="11.346946716308594">
+        <name>129902</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89954</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132148&#xA;      &#xA;      &#xA;        132143&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14376449584961" lon="11.41757583618164">
+        <name>132148</name>
+      </trkpt>
+      <trkpt lat="48.14329528808594" lon="11.417670249938965">
+        <name>132143</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86828</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129099&#xA;      &#xA;      &#xA;        129100&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.256141662597656" lon="11.5331392288208">
+        <name>129099</name>
+      </trkpt>
+      <trkpt lat="48.25318908691406" lon="11.532567977905273">
+        <name>129100</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96467</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138149&#xA;      &#xA;      &#xA;        138150&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31874084472656" lon="11.189688682556152">
+        <name>138149</name>
+      </trkpt>
+      <trkpt lat="48.32048034667969" lon="11.186389923095703">
+        <name>138150</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86047</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128365&#xA;      &#xA;      &#xA;        128366&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.218231201171875" lon="11.248766899108887">
+        <name>128365</name>
+      </trkpt>
+      <trkpt lat="48.21851348876953" lon="11.2503662109375">
+        <name>128366</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105585</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147139&#xA;      &#xA;      &#xA;        147140&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13529968261719" lon="11.425589561462402">
+        <name>147139</name>
+      </trkpt>
+      <trkpt lat="48.1359748840332" lon="11.424484252929688">
+        <name>147140</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89955</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132143&#xA;      &#xA;      &#xA;        132142&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14329528808594" lon="11.417670249938965">
+        <name>132143</name>
+      </trkpt>
+      <trkpt lat="48.14206314086914" lon="11.417994499206543">
+        <name>132142</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86829</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129100&#xA;      &#xA;      &#xA;        129096&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25318908691406" lon="11.532567977905273">
+        <name>129100</name>
+      </trkpt>
+      <trkpt lat="48.250244140625" lon="11.532453536987305">
+        <name>129096</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87871</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129903&#xA;      &#xA;      &#xA;        130097&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.232173919677734" lon="11.347433090209961">
+        <name>129903</name>
+      </trkpt>
+      <trkpt lat="48.23280334472656" lon="11.347821235656738">
+        <name>130097</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85006</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127357&#xA;      &#xA;      &#xA;        127358&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20293426513672" lon="11.301790237426758">
+        <name>127357</name>
+      </trkpt>
+      <trkpt lat="48.2028923034668" lon="11.302361488342285">
+        <name>127358</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86048</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128366&#xA;      &#xA;      &#xA;        128367&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21851348876953" lon="11.2503662109375">
+        <name>128366</name>
+      </trkpt>
+      <trkpt lat="48.21885681152344" lon="11.252157211303711">
+        <name>128367</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105586</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147140&#xA;      &#xA;      &#xA;        147141&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1359748840332" lon="11.424484252929688">
+        <name>147140</name>
+      </trkpt>
+      <trkpt lat="48.13662338256836" lon="11.425398826599121">
+        <name>147141</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89956</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132142&#xA;      &#xA;      &#xA;        132141&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14206314086914" lon="11.417994499206543">
+        <name>132142</name>
+      </trkpt>
+      <trkpt lat="48.1424674987793" lon="11.420888900756836">
+        <name>132141</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105065</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146608&#xA;      &#xA;      &#xA;        146614&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.226741790771484" lon="11.552311897277832">
+        <name>146608</name>
+      </trkpt>
+      <trkpt lat="48.22685623168945" lon="11.558568000793457">
+        <name>146614</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87872</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130097&#xA;      &#xA;      &#xA;        130098&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23280334472656" lon="11.347821235656738">
+        <name>130097</name>
+      </trkpt>
+      <trkpt lat="48.23329544067383" lon="11.348307609558105">
+        <name>130098</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86049</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128367&#xA;      &#xA;      &#xA;        128368&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21885681152344" lon="11.252157211303711">
+        <name>128367</name>
+      </trkpt>
+      <trkpt lat="48.218955993652344" lon="11.252594947814941">
+        <name>128368</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105587</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147141&#xA;      &#xA;      &#xA;        147142&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13662338256836" lon="11.425398826599121">
+        <name>147141</name>
+      </trkpt>
+      <trkpt lat="48.137001037597656" lon="11.426217079162598">
+        <name>147142</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89957</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132141&#xA;      &#xA;      &#xA;        132140&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1424674987793" lon="11.420888900756836">
+        <name>132141</name>
+      </trkpt>
+      <trkpt lat="48.14286422729492" lon="11.423746109008789">
+        <name>132140</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86831</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129101&#xA;      &#xA;      &#xA;        129102&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.259613037109375" lon="11.534852981567383">
+        <name>129101</name>
+      </trkpt>
+      <trkpt lat="48.26298141479492" lon="11.536539077758789">
+        <name>129102</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105066</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146614&#xA;      &#xA;      &#xA;        146615&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22685623168945" lon="11.558568000793457">
+        <name>146614</name>
+      </trkpt>
+      <trkpt lat="48.226966857910156" lon="11.563253402709961">
+        <name>146615</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87873</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130098&#xA;      &#xA;      &#xA;        130099&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23329544067383" lon="11.348307609558105">
+        <name>130098</name>
+      </trkpt>
+      <trkpt lat="48.23386764526367" lon="11.348992347717285">
+        <name>130099</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96470</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138150&#xA;      &#xA;      &#xA;        138151&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.32048034667969" lon="11.186389923095703">
+        <name>138150</name>
+      </trkpt>
+      <trkpt lat="48.322330474853516" lon="11.18244743347168">
+        <name>138151</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105327</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146871&#xA;      &#xA;      &#xA;        146880&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.027679443359375" lon="11.658404350280762">
+        <name>146871</name>
+      </trkpt>
+      <trkpt lat="48.026668548583984" lon="11.654777526855469">
+        <name>146880</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86050</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128368&#xA;      &#xA;      &#xA;        128369&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.218955993652344" lon="11.252594947814941">
+        <name>128368</name>
+      </trkpt>
+      <trkpt lat="48.21889114379883" lon="11.252975463867188">
+        <name>128369</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105588</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147142&#xA;      &#xA;      &#xA;        147143&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.137001037597656" lon="11.426217079162598">
+        <name>147142</name>
+      </trkpt>
+      <trkpt lat="48.13723373413086" lon="11.426979064941406">
+        <name>147143</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89958</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132140&#xA;      &#xA;      &#xA;        132139&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14286422729492" lon="11.423746109008789">
+        <name>132140</name>
+      </trkpt>
+      <trkpt lat="48.14375305175781" lon="11.423383712768555">
+        <name>132139</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86832</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129103&#xA;      &#xA;      &#xA;        129104&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.263057708740234" lon="11.53628158569336">
+        <name>129103</name>
+      </trkpt>
+      <trkpt lat="48.2596321105957" lon="11.534453392028809">
+        <name>129104</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105067</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146615&#xA;      &#xA;      &#xA;        146616&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.226966857910156" lon="11.563253402709961">
+        <name>146615</name>
+      </trkpt>
+      <trkpt lat="48.22706604003906" lon="11.566394805908203">
+        <name>146616</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87874</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130099&#xA;      &#xA;      &#xA;        130100&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23386764526367" lon="11.348992347717285">
+        <name>130099</name>
+      </trkpt>
+      <trkpt lat="48.23419189453125" lon="11.34939193725586">
+        <name>130100</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105328</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146880&#xA;      &#xA;      &#xA;        146881&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.026668548583984" lon="11.654777526855469">
+        <name>146880</name>
+      </trkpt>
+      <trkpt lat="48.026268005371094" lon="11.652892112731934">
+        <name>146881</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86051</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128369&#xA;      &#xA;      &#xA;        128370&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21889114379883" lon="11.252975463867188">
+        <name>128369</name>
+      </trkpt>
+      <trkpt lat="48.2186164855957" lon="11.253129005432129">
+        <name>128370</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105589</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147143&#xA;      &#xA;      &#xA;        147144&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13723373413086" lon="11.426979064941406">
+        <name>147143</name>
+      </trkpt>
+      <trkpt lat="48.13910675048828" lon="11.425970077514648">
+        <name>147144</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89959</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132143&#xA;      &#xA;      &#xA;        132144&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14329528808594" lon="11.417670249938965">
+        <name>132143</name>
+      </trkpt>
+      <trkpt lat="48.143333435058594" lon="11.418928146362305">
+        <name>132144</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86833</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129104&#xA;      &#xA;      &#xA;        129099&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2596321105957" lon="11.534453392028809">
+        <name>129104</name>
+      </trkpt>
+      <trkpt lat="48.256141662597656" lon="11.5331392288208">
+        <name>129099</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105068</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146616&#xA;      &#xA;      &#xA;        146617&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22706604003906" lon="11.566394805908203">
+        <name>146616</name>
+      </trkpt>
+      <trkpt lat="48.22727584838867" lon="11.57025146484375">
+        <name>146617</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87875</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130100&#xA;      &#xA;      &#xA;        130101&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23419189453125" lon="11.34939193725586">
+        <name>130100</name>
+      </trkpt>
+      <trkpt lat="48.23466491699219" lon="11.348821640014648">
+        <name>130101</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96472</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138151&#xA;      &#xA;      &#xA;        138152&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.322330474853516" lon="11.18244743347168">
+        <name>138151</name>
+      </trkpt>
+      <trkpt lat="48.32469940185547" lon="11.177306175231934">
+        <name>138152</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105329</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146881&#xA;      &#xA;      &#xA;        146882&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.026268005371094" lon="11.652892112731934">
+        <name>146881</name>
+      </trkpt>
+      <trkpt lat="48.02611541748047" lon="11.651406288146973">
+        <name>146882</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86052</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128370&#xA;      &#xA;      &#xA;        128371&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2186164855957" lon="11.253129005432129">
+        <name>128370</name>
+      </trkpt>
+      <trkpt lat="48.21745681762695" lon="11.253204345703125">
+        <name>128371</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105590</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147144&#xA;      &#xA;      &#xA;        147145&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13910675048828" lon="11.425970077514648">
+        <name>147144</name>
+      </trkpt>
+      <trkpt lat="48.140869140625" lon="11.424903869628906">
+        <name>147145</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89960</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132144&#xA;      &#xA;      &#xA;        132145&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.143333435058594" lon="11.418928146362305">
+        <name>132144</name>
+      </trkpt>
+      <trkpt lat="48.14338302612305" lon="11.419879913330078">
+        <name>132145</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86834</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129102&#xA;      &#xA;      &#xA;        129105&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26298141479492" lon="11.536539077758789">
+        <name>129102</name>
+      </trkpt>
+      <trkpt lat="48.26625061035156" lon="11.538652420043945">
+        <name>129105</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105069</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146617&#xA;      &#xA;      &#xA;        146618&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22727584838867" lon="11.57025146484375">
+        <name>146617</name>
+      </trkpt>
+      <trkpt lat="48.227638244628906" lon="11.574878692626953">
+        <name>146618</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87876</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130101&#xA;      &#xA;      &#xA;        130102&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23466491699219" lon="11.348821640014648">
+        <name>130101</name>
+      </trkpt>
+      <trkpt lat="48.23483657836914" lon="11.348307609558105">
+        <name>130102</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105330</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146882&#xA;      &#xA;      &#xA;        146883&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.02611541748047" lon="11.651406288146973">
+        <name>146882</name>
+      </trkpt>
+      <trkpt lat="48.026248931884766" lon="11.649493217468262">
+        <name>146883</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86053</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128371&#xA;      &#xA;      &#xA;        128372&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21745681762695" lon="11.253204345703125">
+        <name>128371</name>
+      </trkpt>
+      <trkpt lat="48.216915130615234" lon="11.253318786621094">
+        <name>128372</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105591</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147145&#xA;      &#xA;      &#xA;        147146&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.140869140625" lon="11.424903869628906">
+        <name>147145</name>
+      </trkpt>
+      <trkpt lat="48.14219284057617" lon="11.424046516418457">
+        <name>147146</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89961</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132145&#xA;      &#xA;      &#xA;        132146&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14338302612305" lon="11.419879913330078">
+        <name>132145</name>
+      </trkpt>
+      <trkpt lat="48.14345932006836" lon="11.420699119567871">
+        <name>132146</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86835</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129105&#xA;      &#xA;      &#xA;        129106&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26625061035156" lon="11.538652420043945">
+        <name>129105</name>
+      </trkpt>
+      <trkpt lat="48.26946258544922" lon="11.540938377380371">
+        <name>129106</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105070</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146618&#xA;      &#xA;      &#xA;        146619&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.227638244628906" lon="11.574878692626953">
+        <name>146618</name>
+      </trkpt>
+      <trkpt lat="48.22801208496094" lon="11.578678131103516">
+        <name>146619</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87877</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130102&#xA;      &#xA;      &#xA;        130103&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23483657836914" lon="11.348307609558105">
+        <name>130102</name>
+      </trkpt>
+      <trkpt lat="48.23466491699219" lon="11.34770679473877">
+        <name>130103</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85012</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127358&#xA;      &#xA;      &#xA;        127364&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2028923034668" lon="11.302361488342285">
+        <name>127358</name>
+      </trkpt>
+      <trkpt lat="48.20546340942383" lon="11.306921005249023">
+        <name>127364</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105331</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146883&#xA;      &#xA;      &#xA;        146884&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.026248931884766" lon="11.649493217468262">
+        <name>146883</name>
+      </trkpt>
+      <trkpt lat="48.02659606933594" lon="11.647636413574219">
+        <name>146884</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86054</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128372&#xA;      &#xA;      &#xA;        128373&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.216915130615234" lon="11.253318786621094">
+        <name>128372</name>
+      </trkpt>
+      <trkpt lat="48.215667724609375" lon="11.25348949432373">
+        <name>128373</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105592</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147146&#xA;      &#xA;      &#xA;        132140&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14219284057617" lon="11.424046516418457">
+        <name>147146</name>
+      </trkpt>
+      <trkpt lat="48.14286422729492" lon="11.423746109008789">
+        <name>132140</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89962</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132146&#xA;      &#xA;      &#xA;        132147&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14345932006836" lon="11.420699119567871">
+        <name>132146</name>
+      </trkpt>
+      <trkpt lat="48.14353561401367" lon="11.421175003051758">
+        <name>132147</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86836</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129107&#xA;      &#xA;      &#xA;        129108&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26957702636719" lon="11.540679931640625">
+        <name>129107</name>
+      </trkpt>
+      <trkpt lat="48.26639938354492" lon="11.538366317749023">
+        <name>129108</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105071</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146619&#xA;      &#xA;      &#xA;        146620&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22801208496094" lon="11.578678131103516">
+        <name>146619</name>
+      </trkpt>
+      <trkpt lat="48.22845458984375" lon="11.58316421508789">
+        <name>146620</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87878</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130103&#xA;      &#xA;      &#xA;        130104&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23466491699219" lon="11.34770679473877">
+        <name>130103</name>
+      </trkpt>
+      <trkpt lat="48.23419189453125" lon="11.347564697265625">
+        <name>130104</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>98038</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127296&#xA;      &#xA;      &#xA;        139652&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21146011352539" lon="11.317453384399414">
+        <name>127296</name>
+      </trkpt>
+      <trkpt lat="48.212623596191406" lon="11.31899642944336">
+        <name>139652</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105332</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146884&#xA;      &#xA;      &#xA;        146885&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.02659606933594" lon="11.647636413574219">
+        <name>146884</name>
+      </trkpt>
+      <trkpt lat="48.02689743041992" lon="11.645721435546875">
+        <name>146885</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86055</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128373&#xA;      &#xA;      &#xA;        128374&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.215667724609375" lon="11.25348949432373">
+        <name>128373</name>
+      </trkpt>
+      <trkpt lat="48.21546936035156" lon="11.253661155700684">
+        <name>128374</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105593</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146890&#xA;      &#xA;      &#xA;        147157&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.02590560913086" lon="11.65372085571289">
+        <name>146890</name>
+      </trkpt>
+      <trkpt lat="48.02501678466797" lon="11.655895233154297">
+        <name>147157</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89963</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128229&#xA;      &#xA;      &#xA;        132159&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.186790466308594" lon="11.382305145263672">
+        <name>128229</name>
+      </trkpt>
+      <trkpt lat="48.18618392944336" lon="11.383527755737305">
+        <name>132159</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86837</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129108&#xA;      &#xA;      &#xA;        129103&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26639938354492" lon="11.538366317749023">
+        <name>129108</name>
+      </trkpt>
+      <trkpt lat="48.263057708740234" lon="11.53628158569336">
+        <name>129103</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105072</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146620&#xA;      &#xA;      &#xA;        146621&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22845458984375" lon="11.58316421508789">
+        <name>146620</name>
+      </trkpt>
+      <trkpt lat="48.22868347167969" lon="11.58687686920166">
+        <name>146621</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87879</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130104&#xA;      &#xA;      &#xA;        130105&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23419189453125" lon="11.347564697265625">
+        <name>130104</name>
+      </trkpt>
+      <trkpt lat="48.2337760925293" lon="11.348164558410645">
+        <name>130105</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>98039</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139652&#xA;      &#xA;      &#xA;        127294&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.212623596191406" lon="11.31899642944336">
+        <name>139652</name>
+      </trkpt>
+      <trkpt lat="48.21293640136719" lon="11.31939697265625">
+        <name>127294</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96476</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138152&#xA;      &#xA;      &#xA;        138153&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.32469940185547" lon="11.177306175231934">
+        <name>138152</name>
+      </trkpt>
+      <trkpt lat="48.326454162597656" lon="11.173705101013184">
+        <name>138153</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105333</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146885&#xA;      &#xA;      &#xA;        146886&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.02689743041992" lon="11.645721435546875">
+        <name>146885</name>
+      </trkpt>
+      <trkpt lat="48.02703094482422" lon="11.64423656463623">
+        <name>146886</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86056</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128374&#xA;      &#xA;      &#xA;        128375&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21546936035156" lon="11.253661155700684">
+        <name>128374</name>
+      </trkpt>
+      <trkpt lat="48.2154426574707" lon="11.25404167175293">
+        <name>128375</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105594</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147157&#xA;      &#xA;      &#xA;        147156&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.02501678466797" lon="11.655895233154297">
+        <name>147157</name>
+      </trkpt>
+      <trkpt lat="48.023895263671875" lon="11.657694816589355">
+        <name>147156</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89964</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132159&#xA;      &#xA;      &#xA;        132160&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18618392944336" lon="11.383527755737305">
+        <name>132159</name>
+      </trkpt>
+      <trkpt lat="48.18551254272461" lon="11.384899139404297">
+        <name>132160</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86838</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129106&#xA;      &#xA;      &#xA;        129109&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26946258544922" lon="11.540938377380371">
+        <name>129106</name>
+      </trkpt>
+      <trkpt lat="48.27292251586914" lon="11.543965339660645">
+        <name>129109</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105073</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146621&#xA;      &#xA;      &#xA;        146622&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22868347167969" lon="11.58687686920166">
+        <name>146621</name>
+      </trkpt>
+      <trkpt lat="48.22883605957031" lon="11.589791297912598">
+        <name>146622</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87880</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130105&#xA;      &#xA;      &#xA;        130106&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2337760925293" lon="11.348164558410645">
+        <name>130105</name>
+      </trkpt>
+      <trkpt lat="48.23276138305664" lon="11.349878311157227">
+        <name>130106</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>98040</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139652&#xA;      &#xA;      &#xA;        139653&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.212623596191406" lon="11.31899642944336">
+        <name>139652</name>
+      </trkpt>
+      <trkpt lat="48.21437454223633" lon="11.316967964172363">
+        <name>139653</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105334</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146898&#xA;      &#xA;      &#xA;        146886&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.0270881652832" lon="11.641551971435547">
+        <name>146898</name>
+      </trkpt>
+      <trkpt lat="48.02703094482422" lon="11.64423656463623">
+        <name>146886</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86057</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128375&#xA;      &#xA;      &#xA;        128376&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2154426574707" lon="11.25404167175293">
+        <name>128375</name>
+      </trkpt>
+      <trkpt lat="48.215518951416016" lon="11.254537582397461">
+        <name>128376</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105595</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147156&#xA;      &#xA;      &#xA;        147155&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.023895263671875" lon="11.657694816589355">
+        <name>147156</name>
+      </trkpt>
+      <trkpt lat="48.02220153808594" lon="11.659537315368652">
+        <name>147155</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89965</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132160&#xA;      &#xA;      &#xA;        128231&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18551254272461" lon="11.384899139404297">
+        <name>132160</name>
+      </trkpt>
+      <trkpt lat="48.1844367980957" lon="11.386801719665527">
+        <name>128231</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86839</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129109&#xA;      &#xA;      &#xA;        129110&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.27292251586914" lon="11.543965339660645">
+        <name>129109</name>
+      </trkpt>
+      <trkpt lat="48.276268005371094" lon="11.547165870666504">
+        <name>129110</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105074</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146622&#xA;      &#xA;      &#xA;        146623&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22883605957031" lon="11.589791297912598">
+        <name>146622</name>
+      </trkpt>
+      <trkpt lat="48.228912353515625" lon="11.593419075012207">
+        <name>146623</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87881</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130106&#xA;      &#xA;      &#xA;        130107&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23276138305664" lon="11.349878311157227">
+        <name>130106</name>
+      </trkpt>
+      <trkpt lat="48.231201171875" lon="11.35247802734375">
+        <name>130107</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>98041</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139653&#xA;      &#xA;      &#xA;        139654&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21437454223633" lon="11.316967964172363">
+        <name>139653</name>
+      </trkpt>
+      <trkpt lat="48.21460723876953" lon="11.316797256469727">
+        <name>139654</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105335</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146886&#xA;      &#xA;      &#xA;        146887&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.02703094482422" lon="11.64423656463623">
+        <name>146886</name>
+      </trkpt>
+      <trkpt lat="48.026973724365234" lon="11.647066116333008">
+        <name>146887</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87621</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127287&#xA;      &#xA;      &#xA;        129890&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.217811584472656" lon="11.328259468078613">
+        <name>127287</name>
+      </trkpt>
+      <trkpt lat="48.21840286254883" lon="11.329521179199219">
+        <name>129890</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86058</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128376&#xA;      &#xA;      &#xA;        128377&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.215518951416016" lon="11.254537582397461">
+        <name>128376</name>
+      </trkpt>
+      <trkpt lat="48.21550750732422" lon="11.255070686340332">
+        <name>128377</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105596</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147155&#xA;      &#xA;      &#xA;        147154&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.02220153808594" lon="11.659537315368652">
+        <name>147155</name>
+      </trkpt>
+      <trkpt lat="48.02051544189453" lon="11.660652160644531">
+        <name>147154</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89966</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132159&#xA;      &#xA;      &#xA;        132154&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18618392944336" lon="11.383527755737305">
+        <name>132159</name>
+      </trkpt>
+      <trkpt lat="48.187095642089844" lon="11.384841918945312">
+        <name>132154</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86840</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129111&#xA;      &#xA;      &#xA;        129112&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.27643966674805" lon="11.54685115814209">
+        <name>129111</name>
+      </trkpt>
+      <trkpt lat="48.2730712890625" lon="11.543594360351562">
+        <name>129112</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105075</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146623&#xA;      &#xA;      &#xA;        146624&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.228912353515625" lon="11.593419075012207">
+        <name>146623</name>
+      </trkpt>
+      <trkpt lat="48.22888946533203" lon="11.596275329589844">
+        <name>146624</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87882</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130107&#xA;      &#xA;      &#xA;        130108&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.231201171875" lon="11.35247802734375">
+        <name>130107</name>
+      </trkpt>
+      <trkpt lat="48.229549407958984" lon="11.355305671691895">
+        <name>130108</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>98042</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139654&#xA;      &#xA;      &#xA;        139655&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21460723876953" lon="11.316797256469727">
+        <name>139654</name>
+      </trkpt>
+      <trkpt lat="48.21493148803711" lon="11.316854476928711">
+        <name>139655</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105336</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146887&#xA;      &#xA;      &#xA;        146888&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.026973724365234" lon="11.647066116333008">
+        <name>146887</name>
+      </trkpt>
+      <trkpt lat="48.02678680419922" lon="11.649494171142578">
+        <name>146888</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87622</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129890&#xA;      &#xA;      &#xA;        129889&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21840286254883" lon="11.329521179199219">
+        <name>129890</name>
+      </trkpt>
+      <trkpt lat="48.2203483581543" lon="11.332749366760254">
+        <name>129889</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86059</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128377&#xA;      &#xA;      &#xA;        128378&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21550750732422" lon="11.255070686340332">
+        <name>128377</name>
+      </trkpt>
+      <trkpt lat="48.215415954589844" lon="11.255699157714844">
+        <name>128378</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105597</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147154&#xA;      &#xA;      &#xA;        147153&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.02051544189453" lon="11.660652160644531">
+        <name>147154</name>
+      </trkpt>
+      <trkpt lat="48.01897048950195" lon="11.66159439086914">
+        <name>147153</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89967</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132154&#xA;      &#xA;      &#xA;        132155&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.187095642089844" lon="11.384841918945312">
+        <name>132154</name>
+      </trkpt>
+      <trkpt lat="48.188392639160156" lon="11.386641502380371">
+        <name>132155</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86841</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129112&#xA;      &#xA;      &#xA;        129107&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2730712890625" lon="11.543594360351562">
+        <name>129112</name>
+      </trkpt>
+      <trkpt lat="48.26957702636719" lon="11.540679931640625">
+        <name>129107</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105076</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146624&#xA;      &#xA;      &#xA;        146626&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22888946533203" lon="11.596275329589844">
+        <name>146624</name>
+      </trkpt>
+      <trkpt lat="48.22858810424805" lon="11.60107421875">
+        <name>146626</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87883</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130108&#xA;      &#xA;      &#xA;        130109&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.229549407958984" lon="11.355305671691895">
+        <name>130108</name>
+      </trkpt>
+      <trkpt lat="48.22617721557617" lon="11.360904693603516">
+        <name>130109</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>98043</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139655&#xA;      &#xA;      &#xA;        139656&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21493148803711" lon="11.316854476928711">
+        <name>139655</name>
+      </trkpt>
+      <trkpt lat="48.215232849121094" lon="11.317139625549316">
+        <name>139656</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96480</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138153&#xA;      &#xA;      &#xA;        138157&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.326454162597656" lon="11.173705101013184">
+        <name>138153</name>
+      </trkpt>
+      <trkpt lat="48.327392578125" lon="11.172033309936523">
+        <name>138157</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85018</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127364&#xA;      &#xA;      &#xA;        127370&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20546340942383" lon="11.306921005249023">
+        <name>127364</name>
+      </trkpt>
+      <trkpt lat="48.2071647644043" lon="11.30920696258545">
+        <name>127370</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105337</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146888&#xA;      &#xA;      &#xA;        146889&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.02678680419922" lon="11.649494171142578">
+        <name>146888</name>
+      </trkpt>
+      <trkpt lat="48.02638244628906" lon="11.651978492736816">
+        <name>146889</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87623</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129889&#xA;      &#xA;      &#xA;        127458&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2203483581543" lon="11.332749366760254">
+        <name>129889</name>
+      </trkpt>
+      <trkpt lat="48.22129440307617" lon="11.3343505859375">
+        <name>127458</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86060</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128378&#xA;      &#xA;      &#xA;        128379&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.215415954589844" lon="11.255699157714844">
+        <name>128378</name>
+      </trkpt>
+      <trkpt lat="48.21536636352539" lon="11.25638484954834">
+        <name>128379</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105598</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147153&#xA;      &#xA;      &#xA;        147152&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.01897048950195" lon="11.66159439086914">
+        <name>147153</name>
+      </trkpt>
+      <trkpt lat="48.01750564575195" lon="11.662622451782227">
+        <name>147152</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89968</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132155&#xA;      &#xA;      &#xA;        132156&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.188392639160156" lon="11.386641502380371">
+        <name>132155</name>
+      </trkpt>
+      <trkpt lat="48.188961029052734" lon="11.38735580444336">
+        <name>132156</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86842</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129110&#xA;      &#xA;      &#xA;        129113&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.276268005371094" lon="11.547165870666504">
+        <name>129110</name>
+      </trkpt>
+      <trkpt lat="48.279632568359375" lon="11.550821304321289">
+        <name>129113</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87884</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130109&#xA;      &#xA;      &#xA;        130110&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22617721557617" lon="11.360904693603516">
+        <name>130109</name>
+      </trkpt>
+      <trkpt lat="48.22203063964844" lon="11.367988586425781">
+        <name>130110</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>98044</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139656&#xA;      &#xA;      &#xA;        139657&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.215232849121094" lon="11.317139625549316">
+        <name>139656</name>
+      </trkpt>
+      <trkpt lat="48.215938568115234" lon="11.317939758300781">
+        <name>139657</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85019</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127370&#xA;      &#xA;      &#xA;        127371&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2071647644043" lon="11.30920696258545">
+        <name>127370</name>
+      </trkpt>
+      <trkpt lat="48.20932388305664" lon="11.311186790466309">
+        <name>127371</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105338</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146889&#xA;      &#xA;      &#xA;        146890&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.02638244628906" lon="11.651978492736816">
+        <name>146889</name>
+      </trkpt>
+      <trkpt lat="48.02590560913086" lon="11.65372085571289">
+        <name>146890</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86061</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128379&#xA;      &#xA;      &#xA;        128380&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21536636352539" lon="11.25638484954834">
+        <name>128379</name>
+      </trkpt>
+      <trkpt lat="48.2154426574707" lon="11.25705337524414">
+        <name>128380</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105599</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147151&#xA;      &#xA;      &#xA;        147150&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.0175895690918" lon="11.663436889648438">
+        <name>147151</name>
+      </trkpt>
+      <trkpt lat="48.019798278808594" lon="11.66253662109375">
+        <name>147150</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89969</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132156&#xA;      &#xA;      &#xA;        132157&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.188961029052734" lon="11.38735580444336">
+        <name>132156</name>
+      </trkpt>
+      <trkpt lat="48.18940353393555" lon="11.387755393981934">
+        <name>132157</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86843</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129113&#xA;      &#xA;      &#xA;        129114&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.279632568359375" lon="11.550821304321289">
+        <name>129113</name>
+      </trkpt>
+      <trkpt lat="48.28236770629883" lon="11.55424976348877">
+        <name>129114</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87885</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130110&#xA;      &#xA;      &#xA;        130111&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22203063964844" lon="11.367988586425781">
+        <name>130110</name>
+      </trkpt>
+      <trkpt lat="48.21829605102539" lon="11.374273300170898">
+        <name>130111</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>98045</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139657&#xA;      &#xA;      &#xA;        139658&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.215938568115234" lon="11.317939758300781">
+        <name>139657</name>
+      </trkpt>
+      <trkpt lat="48.21718978881836" lon="11.318853378295898">
+        <name>139658</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105339</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146891&#xA;      &#xA;      &#xA;        146892&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.02619171142578" lon="11.654206275939941">
+        <name>146891</name>
+      </trkpt>
+      <trkpt lat="48.02651596069336" lon="11.652835845947266">
+        <name>146892</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86062</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128380&#xA;      &#xA;      &#xA;        128381&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2154426574707" lon="11.25705337524414">
+        <name>128380</name>
+      </trkpt>
+      <trkpt lat="48.2154541015625" lon="11.25739574432373">
+        <name>128381</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105600</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147150&#xA;      &#xA;      &#xA;        147149&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.019798278808594" lon="11.66253662109375">
+        <name>147150</name>
+      </trkpt>
+      <trkpt lat="48.02223205566406" lon="11.661123275756836">
+        <name>147149</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89970</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132157&#xA;      &#xA;      &#xA;        132158&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18940353393555" lon="11.387755393981934">
+        <name>132157</name>
+      </trkpt>
+      <trkpt lat="48.19060134887695" lon="11.388355255126953">
+        <name>132158</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86844</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129115&#xA;      &#xA;      &#xA;        129116&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.28236770629883" lon="11.553877830505371">
+        <name>129115</name>
+      </trkpt>
+      <trkpt lat="48.27971267700195" lon="11.550450325012207">
+        <name>129116</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87886</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130111&#xA;      &#xA;      &#xA;        130112&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21829605102539" lon="11.374273300170898">
+        <name>130111</name>
+      </trkpt>
+      <trkpt lat="48.21529006958008" lon="11.379414558410645">
+        <name>130112</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>98046</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139658&#xA;      &#xA;      &#xA;        139659&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21718978881836" lon="11.318853378295898">
+        <name>139658</name>
+      </trkpt>
+      <trkpt lat="48.21686935424805" lon="11.319938659667969">
+        <name>139659</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85021</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127371&#xA;      &#xA;      &#xA;        127373&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20932388305664" lon="11.311186790466309">
+        <name>127371</name>
+      </trkpt>
+      <trkpt lat="48.211936950683594" lon="11.312653541564941">
+        <name>127373</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105340</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146892&#xA;      &#xA;      &#xA;        146893&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.02651596069336" lon="11.652835845947266">
+        <name>146892</name>
+      </trkpt>
+      <trkpt lat="48.026878356933594" lon="11.650921821594238">
+        <name>146893</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86063</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128381&#xA;      &#xA;      &#xA;        128382&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2154541015625" lon="11.25739574432373">
+        <name>128381</name>
+      </trkpt>
+      <trkpt lat="48.215633392333984" lon="11.258176803588867">
+        <name>128382</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105601</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147149&#xA;      &#xA;      &#xA;        147148&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.02223205566406" lon="11.661123275756836">
+        <name>147149</name>
+      </trkpt>
+      <trkpt lat="48.02381134033203" lon="11.65949535369873">
+        <name>147148</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89971</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132158&#xA;      &#xA;      &#xA;        132161&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19060134887695" lon="11.388355255126953">
+        <name>132158</name>
+      </trkpt>
+      <trkpt lat="48.191253662109375" lon="11.38853645324707">
+        <name>132161</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86845</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129116&#xA;      &#xA;      &#xA;        129111&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.27971267700195" lon="11.550450325012207">
+        <name>129116</name>
+      </trkpt>
+      <trkpt lat="48.27643966674805" lon="11.54685115814209">
+        <name>129111</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87887</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130112&#xA;      &#xA;      &#xA;        130113&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21529006958008" lon="11.379414558410645">
+        <name>130112</name>
+      </trkpt>
+      <trkpt lat="48.211578369140625" lon="11.385669708251953">
+        <name>130113</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>98047</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139659&#xA;      &#xA;      &#xA;        139660&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21686935424805" lon="11.319938659667969">
+        <name>139659</name>
+      </trkpt>
+      <trkpt lat="48.21609115600586" lon="11.319396018981934">
+        <name>139660</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96484</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138157&#xA;      &#xA;      &#xA;        138162&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.327392578125" lon="11.172033309936523">
+        <name>138157</name>
+      </trkpt>
+      <trkpt lat="48.3287353515625" lon="11.169634819030762">
+        <name>138162</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105341</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146893&#xA;      &#xA;      &#xA;        146894&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.026878356933594" lon="11.650921821594238">
+        <name>146893</name>
+      </trkpt>
+      <trkpt lat="48.02714538574219" lon="11.648694038391113">
+        <name>146894</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86064</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128382&#xA;      &#xA;      &#xA;        128383&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.215633392333984" lon="11.258176803588867">
+        <name>128382</name>
+      </trkpt>
+      <trkpt lat="48.2157096862793" lon="11.258596420288086">
+        <name>128383</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105602</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147148&#xA;      &#xA;      &#xA;        147147&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.02381134033203" lon="11.65949535369873">
+        <name>147148</name>
+      </trkpt>
+      <trkpt lat="48.02521896362305" lon="11.657052040100098">
+        <name>147147</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89972</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132161&#xA;      &#xA;      &#xA;        132162&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.191253662109375" lon="11.38853645324707">
+        <name>132161</name>
+      </trkpt>
+      <trkpt lat="48.192012786865234" lon="11.388593673706055">
+        <name>132162</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86846</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129114&#xA;      &#xA;      &#xA;        129117&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.28236770629883" lon="11.55424976348877">
+        <name>129114</name>
+      </trkpt>
+      <trkpt lat="48.28472900390625" lon="11.557591438293457">
+        <name>129117</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87888</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130113&#xA;      &#xA;      &#xA;        130114&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.211578369140625" lon="11.385669708251953">
+        <name>130113</name>
+      </trkpt>
+      <trkpt lat="48.20856475830078" lon="11.390711784362793">
+        <name>130114</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>98048</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139660&#xA;      &#xA;      &#xA;        139661&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21609115600586" lon="11.319396018981934">
+        <name>139660</name>
+      </trkpt>
+      <trkpt lat="48.21580505371094" lon="11.319138526916504">
+        <name>139661</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85023</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127373&#xA;      &#xA;      &#xA;        127378&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.211936950683594" lon="11.312653541564941">
+        <name>127373</name>
+      </trkpt>
+      <trkpt lat="48.21452331542969" lon="11.313453674316406">
+        <name>127378</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105342</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146894&#xA;      &#xA;      &#xA;        146895&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.02714538574219" lon="11.648694038391113">
+        <name>146894</name>
+      </trkpt>
+      <trkpt lat="48.02728271484375" lon="11.646408081054688">
+        <name>146895</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87628</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129889&#xA;      &#xA;      &#xA;        129895&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2203483581543" lon="11.332749366760254">
+        <name>129889</name>
+      </trkpt>
+      <trkpt lat="48.22116470336914" lon="11.33200740814209">
+        <name>129895</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86065</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128383&#xA;      &#xA;      &#xA;        128384&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2157096862793" lon="11.258596420288086">
+        <name>128383</name>
+      </trkpt>
+      <trkpt lat="48.21574783325195" lon="11.258919715881348">
+        <name>128384</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105603</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147147&#xA;      &#xA;      &#xA;        146891&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.02521896362305" lon="11.657052040100098">
+        <name>147147</name>
+      </trkpt>
+      <trkpt lat="48.02619171142578" lon="11.654206275939941">
+        <name>146891</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89973</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132162&#xA;      &#xA;      &#xA;        132163&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.192012786865234" lon="11.388593673706055">
+        <name>132162</name>
+      </trkpt>
+      <trkpt lat="48.19266891479492" lon="11.388726234436035">
+        <name>132163</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86847</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129117&#xA;      &#xA;      &#xA;        129118&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.28472900390625" lon="11.557591438293457">
+        <name>129117</name>
+      </trkpt>
+      <trkpt lat="48.28696823120117" lon="11.561077117919922">
+        <name>129118</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87889</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130114&#xA;      &#xA;      &#xA;        130115&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20856475830078" lon="11.390711784362793">
+        <name>130114</name>
+      </trkpt>
+      <trkpt lat="48.20582580566406" lon="11.39538288116455">
+        <name>130115</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>98049</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139661&#xA;      &#xA;      &#xA;        139662&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21580505371094" lon="11.319138526916504">
+        <name>139661</name>
+      </trkpt>
+      <trkpt lat="48.21488952636719" lon="11.317996978759766">
+        <name>139662</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105343</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146895&#xA;      &#xA;      &#xA;        146896&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.02728271484375" lon="11.646408081054688">
+        <name>146895</name>
+      </trkpt>
+      <trkpt lat="48.02739334106445" lon="11.64415168762207">
+        <name>146896</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86066</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128384&#xA;      &#xA;      &#xA;        128385&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21574783325195" lon="11.258919715881348">
+        <name>128384</name>
+      </trkpt>
+      <trkpt lat="48.21589660644531" lon="11.259110450744629">
+        <name>128385</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105604</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147151&#xA;      &#xA;      &#xA;        147162&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.0175895690918" lon="11.663436889648438">
+        <name>147151</name>
+      </trkpt>
+      <trkpt lat="48.01570129394531" lon="11.664408683776855">
+        <name>147162</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89974</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132163&#xA;      &#xA;      &#xA;        132164&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19266891479492" lon="11.388726234436035">
+        <name>132163</name>
+      </trkpt>
+      <trkpt lat="48.19442367553711" lon="11.38927936553955">
+        <name>132164</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86848</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129118&#xA;      &#xA;      &#xA;        129119&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.28696823120117" lon="11.561077117919922">
+        <name>129118</name>
+      </trkpt>
+      <trkpt lat="48.28983688354492" lon="11.566190719604492">
+        <name>129119</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87890</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130115&#xA;      &#xA;      &#xA;        130116&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20582580566406" lon="11.39538288116455">
+        <name>130115</name>
+      </trkpt>
+      <trkpt lat="48.20228576660156" lon="11.400910377502441">
+        <name>130116</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>98050</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139662&#xA;      &#xA;      &#xA;        139656&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21488952636719" lon="11.317996978759766">
+        <name>139662</name>
+      </trkpt>
+      <trkpt lat="48.215232849121094" lon="11.317139625549316">
+        <name>139656</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96487</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138162&#xA;      &#xA;      &#xA;        138165&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.3287353515625" lon="11.169634819030762">
+        <name>138162</name>
+      </trkpt>
+      <trkpt lat="48.33007049560547" lon="11.16732120513916">
+        <name>138165</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105344</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146896&#xA;      &#xA;      &#xA;        146897&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.02739334106445" lon="11.64415168762207">
+        <name>146896</name>
+      </trkpt>
+      <trkpt lat="48.02741241455078" lon="11.641551971435547">
+        <name>146897</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86067</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128385&#xA;      &#xA;      &#xA;        128386&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21589660644531" lon="11.259110450744629">
+        <name>128385</name>
+      </trkpt>
+      <trkpt lat="48.21614074707031" lon="11.259167671203613">
+        <name>128386</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105605</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147162&#xA;      &#xA;      &#xA;        147161&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.01570129394531" lon="11.664408683776855">
+        <name>147162</name>
+      </trkpt>
+      <trkpt lat="48.013999938964844" lon="11.665436744689941">
+        <name>147161</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89975</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132164&#xA;      &#xA;      &#xA;        132165&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19442367553711" lon="11.38927936553955">
+        <name>132164</name>
+      </trkpt>
+      <trkpt lat="48.19516372680664" lon="11.3895263671875">
+        <name>132165</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86849</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129120&#xA;      &#xA;      &#xA;        129121&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.29001235961914" lon="11.566019058227539">
+        <name>129120</name>
+      </trkpt>
+      <trkpt lat="48.2871208190918" lon="11.560934066772461">
+        <name>129121</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105084</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146626&#xA;      &#xA;      &#xA;        146633&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22858810424805" lon="11.60107421875">
+        <name>146626</name>
+      </trkpt>
+      <trkpt lat="48.228111267089844" lon="11.605473518371582">
+        <name>146633</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87891</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130116&#xA;      &#xA;      &#xA;        130117&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20228576660156" lon="11.400910377502441">
+        <name>130116</name>
+      </trkpt>
+      <trkpt lat="48.19928741455078" lon="11.405449867248535">
+        <name>130117</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>98051</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127294&#xA;      &#xA;      &#xA;        139670&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21293640136719" lon="11.31939697265625">
+        <name>127294</name>
+      </trkpt>
+      <trkpt lat="48.213958740234375" lon="11.320767402648926">
+        <name>139670</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96488</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138165&#xA;      &#xA;      &#xA;        138168&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.33007049560547" lon="11.16732120513916">
+        <name>138165</name>
+      </trkpt>
+      <trkpt lat="48.33161163330078" lon="11.165135383605957">
+        <name>138168</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87631</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127414&#xA;      &#xA;      &#xA;        129896&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22465896606445" lon="11.334139823913574">
+        <name>127414</name>
+      </trkpt>
+      <trkpt lat="48.22550582885742" lon="11.3356351852417">
+        <name>129896</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86068</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128386&#xA;      &#xA;      &#xA;        128387&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21614074707031" lon="11.259167671203613">
+        <name>128386</name>
+      </trkpt>
+      <trkpt lat="48.21702575683594" lon="11.259053230285645">
+        <name>128387</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105606</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147161&#xA;      &#xA;      &#xA;        147160&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.013999938964844" lon="11.665436744689941">
+        <name>147161</name>
+      </trkpt>
+      <trkpt lat="48.011783599853516" lon="11.666950225830078">
+        <name>147160</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89976</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132165&#xA;      &#xA;      &#xA;        132166&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19516372680664" lon="11.3895263671875">
+        <name>132165</name>
+      </trkpt>
+      <trkpt lat="48.19721984863281" lon="11.389925956726074">
+        <name>132166</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86850</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129121&#xA;      &#xA;      &#xA;        129122&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2871208190918" lon="11.560934066772461">
+        <name>129121</name>
+      </trkpt>
+      <trkpt lat="48.28478240966797" lon="11.557249069213867">
+        <name>129122</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105085</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146633&#xA;      &#xA;      &#xA;        146634&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.228111267089844" lon="11.605473518371582">
+        <name>146633</name>
+      </trkpt>
+      <trkpt lat="48.227447509765625" lon="11.609843254089355">
+        <name>146634</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87892</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130117&#xA;      &#xA;      &#xA;        130118&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19928741455078" lon="11.405449867248535">
+        <name>130117</name>
+      </trkpt>
+      <trkpt lat="48.19568634033203" lon="11.41089153289795">
+        <name>130118</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>98052</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139670&#xA;      &#xA;      &#xA;        127292&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.213958740234375" lon="11.320767402648926">
+        <name>139670</name>
+      </trkpt>
+      <trkpt lat="48.21546936035156" lon="11.32281494140625">
+        <name>127292</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96489</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138168&#xA;      &#xA;      &#xA;        138171&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.33161163330078" lon="11.165135383605957">
+        <name>138168</name>
+      </trkpt>
+      <trkpt lat="48.333343505859375" lon="11.163164138793945">
+        <name>138171</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87632</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129896&#xA;      &#xA;      &#xA;        129897&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22550582885742" lon="11.3356351852417">
+        <name>129896</name>
+      </trkpt>
+      <trkpt lat="48.226688385009766" lon="11.337635040283203">
+        <name>129897</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86069</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128387&#xA;      &#xA;      &#xA;        128388&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21702575683594" lon="11.259053230285645">
+        <name>128387</name>
+      </trkpt>
+      <trkpt lat="48.21718978881836" lon="11.259071350097656">
+        <name>128388</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105607</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147152&#xA;      &#xA;      &#xA;        147158&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.01750564575195" lon="11.662622451782227">
+        <name>147152</name>
+      </trkpt>
+      <trkpt lat="48.015167236328125" lon="11.664264678955078">
+        <name>147158</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89977</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132166&#xA;      &#xA;      &#xA;        132167&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19721984863281" lon="11.389925956726074">
+        <name>132166</name>
+      </trkpt>
+      <trkpt lat="48.19827651977539" lon="11.390192985534668">
+        <name>132167</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86851</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129122&#xA;      &#xA;      &#xA;        129115&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.28478240966797" lon="11.557249069213867">
+        <name>129122</name>
+      </trkpt>
+      <trkpt lat="48.28236770629883" lon="11.553877830505371">
+        <name>129115</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105086</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146634&#xA;      &#xA;      &#xA;        146635&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.227447509765625" lon="11.609843254089355">
+        <name>146634</name>
+      </trkpt>
+      <trkpt lat="48.22670364379883" lon="11.613443374633789">
+        <name>146635</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87893</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130118&#xA;      &#xA;      &#xA;        130119&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19568634033203" lon="11.41089153289795">
+        <name>130118</name>
+      </trkpt>
+      <trkpt lat="48.19208908081055" lon="11.416290283203125">
+        <name>130119</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>98053</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139658&#xA;      &#xA;      &#xA;        139663&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21718978881836" lon="11.318853378295898">
+        <name>139658</name>
+      </trkpt>
+      <trkpt lat="48.21781921386719" lon="11.319310188293457">
+        <name>139663</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87633</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129897&#xA;      &#xA;      &#xA;        129898&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.226688385009766" lon="11.337635040283203">
+        <name>129897</name>
+      </trkpt>
+      <trkpt lat="48.227962493896484" lon="11.340005874633789">
+        <name>129898</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86070</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128388&#xA;      &#xA;      &#xA;        128389&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21718978881836" lon="11.259071350097656">
+        <name>128388</name>
+      </trkpt>
+      <trkpt lat="48.21724319458008" lon="11.259282112121582">
+        <name>128389</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105608</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147158&#xA;      &#xA;      &#xA;        147159&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.015167236328125" lon="11.664264678955078">
+        <name>147158</name>
+      </trkpt>
+      <trkpt lat="48.0117073059082" lon="11.666635513305664">
+        <name>147159</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89978</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132167&#xA;      &#xA;      &#xA;        132168&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19827651977539" lon="11.390192985534668">
+        <name>132167</name>
+      </trkpt>
+      <trkpt lat="48.19978332519531" lon="11.390555381774902">
+        <name>132168</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86852</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129119&#xA;      &#xA;      &#xA;        129123&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.28983688354492" lon="11.566190719604492">
+        <name>129119</name>
+      </trkpt>
+      <trkpt lat="48.29194641113281" lon="11.570531845092773">
+        <name>129123</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87894</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130119&#xA;      &#xA;      &#xA;        130120&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19208908081055" lon="11.416290283203125">
+        <name>130119</name>
+      </trkpt>
+      <trkpt lat="48.189022064208984" lon="11.420875549316406">
+        <name>130120</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>98054</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139663&#xA;      &#xA;      &#xA;        139664&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21781921386719" lon="11.319310188293457">
+        <name>139663</name>
+      </trkpt>
+      <trkpt lat="48.21831512451172" lon="11.319938659667969">
+        <name>139664</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87634</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129898&#xA;      &#xA;      &#xA;        129899&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.227962493896484" lon="11.340005874633789">
+        <name>129898</name>
+      </trkpt>
+      <trkpt lat="48.229026794433594" lon="11.342147827148438">
+        <name>129899</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86071</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128389&#xA;      &#xA;      &#xA;        128390&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21724319458008" lon="11.259282112121582">
+        <name>128389</name>
+      </trkpt>
+      <trkpt lat="48.21726608276367" lon="11.260309219360352">
+        <name>128390</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89979</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132168&#xA;      &#xA;      &#xA;        132169&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19978332519531" lon="11.390555381774902">
+        <name>132168</name>
+      </trkpt>
+      <trkpt lat="48.20077133178711" lon="11.390555381774902">
+        <name>132169</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86853</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129123&#xA;      &#xA;      &#xA;        129124&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.29194641113281" lon="11.570531845092773">
+        <name>129123</name>
+      </trkpt>
+      <trkpt lat="48.29402160644531" lon="11.574816703796387">
+        <name>129124</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87895</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130120&#xA;      &#xA;      &#xA;        130121&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.189022064208984" lon="11.420875549316406">
+        <name>130120</name>
+      </trkpt>
+      <trkpt lat="48.18502426147461" lon="11.426959037780762">
+        <name>130121</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>98055</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139664&#xA;      &#xA;      &#xA;        139665&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21831512451172" lon="11.319938659667969">
+        <name>139664</name>
+      </trkpt>
+      <trkpt lat="48.21871566772461" lon="11.320624351501465">
+        <name>139665</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87635</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129899&#xA;      &#xA;      &#xA;        129900&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.229026794433594" lon="11.342147827148438">
+        <name>129899</name>
+      </trkpt>
+      <trkpt lat="48.23025131225586" lon="11.344776153564453">
+        <name>129900</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86072</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128390&#xA;      &#xA;      &#xA;        128391&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21726608276367" lon="11.260309219360352">
+        <name>128390</name>
+      </trkpt>
+      <trkpt lat="48.21723175048828" lon="11.262709617614746">
+        <name>128391</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89980</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132169&#xA;      &#xA;      &#xA;        132170&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20077133178711" lon="11.390555381774902">
+        <name>132169</name>
+      </trkpt>
+      <trkpt lat="48.2012939453125" lon="11.390402793884277">
+        <name>132170</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86854</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129124&#xA;      &#xA;      &#xA;        129125&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.29402160644531" lon="11.574816703796387">
+        <name>129124</name>
+      </trkpt>
+      <trkpt lat="48.295597076416016" lon="11.578102111816406">
+        <name>129125</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>98056</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139665&#xA;      &#xA;      &#xA;        139666&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21871566772461" lon="11.320624351501465">
+        <name>139665</name>
+      </trkpt>
+      <trkpt lat="48.21876907348633" lon="11.320881843566895">
+        <name>139666</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96493</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138171&#xA;      &#xA;      &#xA;        138172&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.333343505859375" lon="11.163164138793945">
+        <name>138171</name>
+      </trkpt>
+      <trkpt lat="48.335227966308594" lon="11.161407470703125">
+        <name>138172</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87636</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129900&#xA;      &#xA;      &#xA;        129901&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23025131225586" lon="11.344776153564453">
+        <name>129900</name>
+      </trkpt>
+      <trkpt lat="48.23116683959961" lon="11.346376419067383">
+        <name>129901</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86073</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128391&#xA;      &#xA;      &#xA;        128392&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21723175048828" lon="11.262709617614746">
+        <name>128391</name>
+      </trkpt>
+      <trkpt lat="48.21718215942383" lon="11.263642311096191">
+        <name>128392</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89981</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132170&#xA;      &#xA;      &#xA;        132171&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2012939453125" lon="11.390402793884277">
+        <name>132170</name>
+      </trkpt>
+      <trkpt lat="48.20193862915039" lon="11.389888763427734">
+        <name>132171</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86855</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129128&#xA;      &#xA;      &#xA;        129127&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.29582595825195" lon="11.577901840209961">
+        <name>129128</name>
+      </trkpt>
+      <trkpt lat="48.294212341308594" lon="11.57458782196045">
+        <name>129127</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87897</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129950&#xA;      &#xA;      &#xA;        130122&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18100357055664" lon="11.433415412902832">
+        <name>129950</name>
+      </trkpt>
+      <trkpt lat="48.181976318359375" lon="11.431831359863281">
+        <name>130122</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>98057</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139666&#xA;      &#xA;      &#xA;        139667&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21876907348633" lon="11.320881843566895">
+        <name>139666</name>
+      </trkpt>
+      <trkpt lat="48.21875" lon="11.321195602416992">
+        <name>139667</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85032</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127378&#xA;      &#xA;      &#xA;        127384&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21452331542969" lon="11.313453674316406">
+        <name>127378</name>
+      </trkpt>
+      <trkpt lat="48.216041564941406" lon="11.314178466796875">
+        <name>127384</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87637</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129901&#xA;      &#xA;      &#xA;        129902&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23116683959961" lon="11.346376419067383">
+        <name>129901</name>
+      </trkpt>
+      <trkpt lat="48.23162078857422" lon="11.346946716308594">
+        <name>129902</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86074</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128392&#xA;      &#xA;      &#xA;        128393&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21718215942383" lon="11.263642311096191">
+        <name>128392</name>
+      </trkpt>
+      <trkpt lat="48.217063903808594" lon="11.264881134033203">
+        <name>128393</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89982</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132171&#xA;      &#xA;      &#xA;        132172&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20193862915039" lon="11.389888763427734">
+        <name>132171</name>
+      </trkpt>
+      <trkpt lat="48.20269012451172" lon="11.389164924621582">
+        <name>132172</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86856</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129127&#xA;      &#xA;      &#xA;        129126&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.294212341308594" lon="11.57458782196045">
+        <name>129127</name>
+      </trkpt>
+      <trkpt lat="48.29216003417969" lon="11.570331573486328">
+        <name>129126</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87898</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130122&#xA;      &#xA;      &#xA;        129948&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.181976318359375" lon="11.431831359863281">
+        <name>130122</name>
+      </trkpt>
+      <trkpt lat="48.18239212036133" lon="11.431615829467773">
+        <name>129948</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>98058</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139667&#xA;      &#xA;      &#xA;        139668&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21875" lon="11.321195602416992">
+        <name>139667</name>
+      </trkpt>
+      <trkpt lat="48.21659851074219" lon="11.320967674255371">
+        <name>139668</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105352</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146897&#xA;      &#xA;      &#xA;        146909&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.02741241455078" lon="11.641551971435547">
+        <name>146897</name>
+      </trkpt>
+      <trkpt lat="48.027435302734375" lon="11.638237953186035">
+        <name>146909</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87638</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129902&#xA;      &#xA;      &#xA;        129903&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23162078857422" lon="11.346946716308594">
+        <name>129902</name>
+      </trkpt>
+      <trkpt lat="48.232173919677734" lon="11.347433090209961">
+        <name>129903</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86075</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128393&#xA;      &#xA;      &#xA;        128394&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.217063903808594" lon="11.264881134033203">
+        <name>128393</name>
+      </trkpt>
+      <trkpt lat="48.217041015625" lon="11.265851974487305">
+        <name>128394</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89983</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132172&#xA;      &#xA;      &#xA;        132173&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20269012451172" lon="11.389164924621582">
+        <name>132172</name>
+      </trkpt>
+      <trkpt lat="48.20299530029297" lon="11.390631675720215">
+        <name>132173</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86857</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129126&#xA;      &#xA;      &#xA;        129120&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.29216003417969" lon="11.570331573486328">
+        <name>129126</name>
+      </trkpt>
+      <trkpt lat="48.29001235961914" lon="11.566019058227539">
+        <name>129120</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87899</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130122&#xA;      &#xA;      &#xA;        130123&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.181976318359375" lon="11.431831359863281">
+        <name>130122</name>
+      </trkpt>
+      <trkpt lat="48.18325424194336" lon="11.429717063903809">
+        <name>130123</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96496</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138172&#xA;      &#xA;      &#xA;        138178&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.335227966308594" lon="11.161407470703125">
+        <name>138172</name>
+      </trkpt>
+      <trkpt lat="48.337562561035156" lon="11.159178733825684">
+        <name>138178</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85034</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127384&#xA;      &#xA;      &#xA;        127386&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.216041564941406" lon="11.314178466796875">
+        <name>127384</name>
+      </trkpt>
+      <trkpt lat="48.21751022338867" lon="11.315340042114258">
+        <name>127386</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87639</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129903&#xA;      &#xA;      &#xA;        129904&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.232173919677734" lon="11.347433090209961">
+        <name>129903</name>
+      </trkpt>
+      <trkpt lat="48.23230743408203" lon="11.347689628601074">
+        <name>129904</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86076</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128394&#xA;      &#xA;      &#xA;        128395&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.217041015625" lon="11.265851974487305">
+        <name>128394</name>
+      </trkpt>
+      <trkpt lat="48.21644592285156" lon="11.269070625305176">
+        <name>128395</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>98059</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139668&#xA;      &#xA;      &#xA;        139669&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21659851074219" lon="11.320967674255371">
+        <name>139668</name>
+      </trkpt>
+      <trkpt lat="48.2141227722168" lon="11.320653915405273">
+        <name>139669</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89984</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132173&#xA;      &#xA;      &#xA;        132174&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20299530029297" lon="11.390631675720215">
+        <name>132173</name>
+      </trkpt>
+      <trkpt lat="48.20321273803711" lon="11.391849517822266">
+        <name>132174</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86858</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129125&#xA;      &#xA;      &#xA;        129129&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.295597076416016" lon="11.578102111816406">
+        <name>129125</name>
+      </trkpt>
+      <trkpt lat="48.297691345214844" lon="11.582358360290527">
+        <name>129129</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105093</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146635&#xA;      &#xA;      &#xA;        146642&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22670364379883" lon="11.613443374633789">
+        <name>146635</name>
+      </trkpt>
+      <trkpt lat="48.22565841674805" lon="11.617555618286133">
+        <name>146642</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87900</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130123&#xA;      &#xA;      &#xA;        130121&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18325424194336" lon="11.429717063903809">
+        <name>130123</name>
+      </trkpt>
+      <trkpt lat="48.18502426147461" lon="11.426959037780762">
+        <name>130121</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105354</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146909&#xA;      &#xA;      &#xA;        146910&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.027435302734375" lon="11.638237953186035">
+        <name>146909</name>
+      </trkpt>
+      <trkpt lat="48.027587890625" lon="11.634724617004395">
+        <name>146910</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87640</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129904&#xA;      &#xA;      &#xA;        129905&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23230743408203" lon="11.347689628601074">
+        <name>129904</name>
+      </trkpt>
+      <trkpt lat="48.23223114013672" lon="11.348061561584473">
+        <name>129905</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86077</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128395&#xA;      &#xA;      &#xA;        128396&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21644592285156" lon="11.269070625305176">
+        <name>128395</name>
+      </trkpt>
+      <trkpt lat="48.21604919433594" lon="11.270651817321777">
+        <name>128396</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>98060</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139669&#xA;      &#xA;      &#xA;        139670&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2141227722168" lon="11.320653915405273">
+        <name>139669</name>
+      </trkpt>
+      <trkpt lat="48.213958740234375" lon="11.320767402648926">
+        <name>139670</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89985</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132174&#xA;      &#xA;      &#xA;        132175&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20321273803711" lon="11.391849517822266">
+        <name>132174</name>
+      </trkpt>
+      <trkpt lat="48.2035026550293" lon="11.393126487731934">
+        <name>132175</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86859</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129129&#xA;      &#xA;      &#xA;        129130&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.297691345214844" lon="11.582358360290527">
+        <name>129129</name>
+      </trkpt>
+      <trkpt lat="48.29995346069336" lon="11.587042808532715">
+        <name>129130</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105094</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146642&#xA;      &#xA;      &#xA;        146643&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22565841674805" lon="11.617555618286133">
+        <name>146642</name>
+      </trkpt>
+      <trkpt lat="48.224327087402344" lon="11.621726989746094">
+        <name>146643</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87901</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128959&#xA;      &#xA;      &#xA;        130126&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17397689819336" lon="11.426778793334961">
+        <name>128959</name>
+      </trkpt>
+      <trkpt lat="48.1741828918457" lon="11.426032066345215">
+        <name>130126</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87641</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129905&#xA;      &#xA;      &#xA;        129906&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23223114013672" lon="11.348061561584473">
+        <name>129905</name>
+      </trkpt>
+      <trkpt lat="48.231849670410156" lon="11.34871768951416">
+        <name>129906</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86078</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128396&#xA;      &#xA;      &#xA;        128397&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21604919433594" lon="11.270651817321777">
+        <name>128396</name>
+      </trkpt>
+      <trkpt lat="48.21511459350586" lon="11.273643493652344">
+        <name>128397</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89986</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132175&#xA;      &#xA;      &#xA;        132176&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2035026550293" lon="11.393126487731934">
+        <name>132175</name>
+      </trkpt>
+      <trkpt lat="48.20368957519531" lon="11.393887519836426">
+        <name>132176</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86860</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129130&#xA;      &#xA;      &#xA;        129131&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.29995346069336" lon="11.587042808532715">
+        <name>129130</name>
+      </trkpt>
+      <trkpt lat="48.30187225341797" lon="11.590984344482422">
+        <name>129131</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105095</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146643&#xA;      &#xA;      &#xA;        146644&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.224327087402344" lon="11.621726989746094">
+        <name>146643</name>
+      </trkpt>
+      <trkpt lat="48.22251510620117" lon="11.626355171203613">
+        <name>146644</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87902</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130126&#xA;      &#xA;      &#xA;        130125&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1741828918457" lon="11.426032066345215">
+        <name>130126</name>
+      </trkpt>
+      <trkpt lat="48.17450714111328" lon="11.425860404968262">
+        <name>130125</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105356</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146910&#xA;      &#xA;      &#xA;        146911&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.027587890625" lon="11.634724617004395">
+        <name>146910</name>
+      </trkpt>
+      <trkpt lat="48.02791213989258" lon="11.631124496459961">
+        <name>146911</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87642</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129906&#xA;      &#xA;      &#xA;        129907&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.231849670410156" lon="11.34871768951416">
+        <name>129906</name>
+      </trkpt>
+      <trkpt lat="48.23173522949219" lon="11.349175453186035">
+        <name>129907</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86079</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128397&#xA;      &#xA;      &#xA;        128398&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21511459350586" lon="11.273643493652344">
+        <name>128397</name>
+      </trkpt>
+      <trkpt lat="48.21454620361328" lon="11.276005744934082">
+        <name>128398</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89987</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132176&#xA;      &#xA;      &#xA;        132177&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20368957519531" lon="11.393887519836426">
+        <name>132176</name>
+      </trkpt>
+      <trkpt lat="48.204376220703125" lon="11.39306926727295">
+        <name>132177</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86861</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129134&#xA;      &#xA;      &#xA;        129133&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.302024841308594" lon="11.590842247009277">
+        <name>129134</name>
+      </trkpt>
+      <trkpt lat="48.300086975097656" lon="11.586813926696777">
+        <name>129133</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87903</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130125&#xA;      &#xA;      &#xA;        130124&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17450714111328" lon="11.425860404968262">
+        <name>130125</name>
+      </trkpt>
+      <trkpt lat="48.175479888916016" lon="11.427002906799316">
+        <name>130124</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105357</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146911&#xA;      &#xA;      &#xA;        146912&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.02791213989258" lon="11.631124496459961">
+        <name>146911</name>
+      </trkpt>
+      <trkpt lat="48.02838897705078" lon="11.627668380737305">
+        <name>146912</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96500</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138178&#xA;      &#xA;      &#xA;        138180&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.337562561035156" lon="11.159178733825684">
+        <name>138178</name>
+      </trkpt>
+      <trkpt lat="48.3392448425293" lon="11.15725040435791">
+        <name>138180</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87643</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129907&#xA;      &#xA;      &#xA;        129908&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23173522949219" lon="11.349175453186035">
+        <name>129907</name>
+      </trkpt>
+      <trkpt lat="48.23183059692383" lon="11.349861145019531">
+        <name>129908</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86080</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128398&#xA;      &#xA;      &#xA;        128399&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21454620361328" lon="11.276005744934082">
+        <name>128398</name>
+      </trkpt>
+      <trkpt lat="48.21413803100586" lon="11.277814865112305">
+        <name>128399</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89988</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132177&#xA;      &#xA;      &#xA;        132178&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.204376220703125" lon="11.39306926727295">
+        <name>132177</name>
+      </trkpt>
+      <trkpt lat="48.20583724975586" lon="11.391183853149414">
+        <name>132178</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86862</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129133&#xA;      &#xA;      &#xA;        129132&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.300086975097656" lon="11.586813926696777">
+        <name>129133</name>
+      </trkpt>
+      <trkpt lat="48.297767639160156" lon="11.582015037536621">
+        <name>129132</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87904</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130124&#xA;      &#xA;      &#xA;        128961&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.175479888916016" lon="11.427002906799316">
+        <name>130124</name>
+      </trkpt>
+      <trkpt lat="48.17674255371094" lon="11.428302764892578">
+        <name>128961</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105358</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146913&#xA;      &#xA;      &#xA;        146914&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.0281982421875" lon="11.627553939819336">
+        <name>146913</name>
+      </trkpt>
+      <trkpt lat="48.027679443359375" lon="11.6310396194458">
+        <name>146914</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87644</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129908&#xA;      &#xA;      &#xA;        129909&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23183059692383" lon="11.349861145019531">
+        <name>129908</name>
+      </trkpt>
+      <trkpt lat="48.23188781738281" lon="11.350345611572266">
+        <name>129909</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86081</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128399&#xA;      &#xA;      &#xA;        128400&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21413803100586" lon="11.277814865112305">
+        <name>128399</name>
+      </trkpt>
+      <trkpt lat="48.21360397338867" lon="11.27918529510498">
+        <name>128400</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89989</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132178&#xA;      &#xA;      &#xA;        132179&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20583724975586" lon="11.391183853149414">
+        <name>132178</name>
+      </trkpt>
+      <trkpt lat="48.20607376098633" lon="11.39091682434082">
+        <name>132179</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86863</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129132&#xA;      &#xA;      &#xA;        129128&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.297767639160156" lon="11.582015037536621">
+        <name>129132</name>
+      </trkpt>
+      <trkpt lat="48.29582595825195" lon="11.577901840209961">
+        <name>129128</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85821</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127313&#xA;      &#xA;      &#xA;        128150&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19998550415039" lon="11.306253433227539">
+        <name>127313</name>
+      </trkpt>
+      <trkpt lat="48.200374603271484" lon="11.307809829711914">
+        <name>128150</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87905</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130125&#xA;      &#xA;      &#xA;        128958&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17450714111328" lon="11.425860404968262">
+        <name>130125</name>
+      </trkpt>
+      <trkpt lat="48.17410659790039" lon="11.425445556640625">
+        <name>128958</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105359</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146914&#xA;      &#xA;      &#xA;        146915&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.027679443359375" lon="11.6310396194458">
+        <name>146914</name>
+      </trkpt>
+      <trkpt lat="48.02733612060547" lon="11.634695053100586">
+        <name>146915</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87645</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129909&#xA;      &#xA;      &#xA;        129910&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23188781738281" lon="11.350345611572266">
+        <name>129909</name>
+      </trkpt>
+      <trkpt lat="48.2318115234375" lon="11.35080337524414">
+        <name>129910</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86082</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128400&#xA;      &#xA;      &#xA;        128401&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21360397338867" lon="11.27918529510498">
+        <name>128400</name>
+      </trkpt>
+      <trkpt lat="48.212833404541016" lon="11.28040599822998">
+        <name>128401</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89990</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132179&#xA;      &#xA;      &#xA;        132180&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20607376098633" lon="11.39091682434082">
+        <name>132179</name>
+      </trkpt>
+      <trkpt lat="48.20629119873047" lon="11.390746116638184">
+        <name>132180</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86864</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129131&#xA;      &#xA;      &#xA;        129135&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.30187225341797" lon="11.590984344482422">
+        <name>129131</name>
+      </trkpt>
+      <trkpt lat="48.3042106628418" lon="11.595841407775879">
+        <name>129135</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105099</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146644&#xA;      &#xA;      &#xA;        146652&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22251510620117" lon="11.626355171203613">
+        <name>146644</name>
+      </trkpt>
+      <trkpt lat="48.220001220703125" lon="11.631725311279297">
+        <name>146652</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85822</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128150&#xA;      &#xA;      &#xA;        128149&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.200374603271484" lon="11.307809829711914">
+        <name>128150</name>
+      </trkpt>
+      <trkpt lat="48.200706481933594" lon="11.308629035949707">
+        <name>128149</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87906</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129837&#xA;      &#xA;      &#xA;        130129&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1616325378418" lon="11.429903030395508">
+        <name>129837</name>
+      </trkpt>
+      <trkpt lat="48.161285400390625" lon="11.429211616516113">
+        <name>130129</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105360</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146915&#xA;      &#xA;      &#xA;        146916&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.02733612060547" lon="11.634695053100586">
+        <name>146915</name>
+      </trkpt>
+      <trkpt lat="48.02714538574219" lon="11.63818073272705">
+        <name>146916</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87646</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129910&#xA;      &#xA;      &#xA;        129911&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2318115234375" lon="11.35080337524414">
+        <name>129910</name>
+      </trkpt>
+      <trkpt lat="48.23150634765625" lon="11.35140323638916">
+        <name>129911</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86083</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128401&#xA;      &#xA;      &#xA;        128402&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.212833404541016" lon="11.28040599822998">
+        <name>128401</name>
+      </trkpt>
+      <trkpt lat="48.2115478515625" lon="11.281566619873047">
+        <name>128402</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96503</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138180&#xA;      &#xA;      &#xA;        138183&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.3392448425293" lon="11.15725040435791">
+        <name>138180</name>
+      </trkpt>
+      <trkpt lat="48.34083938598633" lon="11.154935836791992">
+        <name>138183</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85041</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127386&#xA;      &#xA;      &#xA;        127393&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21751022338867" lon="11.315340042114258">
+        <name>127386</name>
+      </trkpt>
+      <trkpt lat="48.218849182128906" lon="11.316901206970215">
+        <name>127393</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89991</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132180&#xA;      &#xA;      &#xA;        132181&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20629119873047" lon="11.390746116638184">
+        <name>132180</name>
+      </trkpt>
+      <trkpt lat="48.20662307739258" lon="11.390746116638184">
+        <name>132181</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86865</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129135&#xA;      &#xA;      &#xA;        129136&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.3042106628418" lon="11.595841407775879">
+        <name>129135</name>
+      </trkpt>
+      <trkpt lat="48.30646896362305" lon="11.600525856018066">
+        <name>129136</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85823</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128149&#xA;      &#xA;      &#xA;        127303&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.200706481933594" lon="11.308629035949707">
+        <name>128149</name>
+      </trkpt>
+      <trkpt lat="48.20135498046875" lon="11.310006141662598">
+        <name>127303</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87907</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130129&#xA;      &#xA;      &#xA;        130128&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.161285400390625" lon="11.429211616516113">
+        <name>130129</name>
+      </trkpt>
+      <trkpt lat="48.160919189453125" lon="11.428182601928711">
+        <name>130128</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105361</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146916&#xA;      &#xA;      &#xA;        146898&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.02714538574219" lon="11.63818073272705">
+        <name>146916</name>
+      </trkpt>
+      <trkpt lat="48.0270881652832" lon="11.641551971435547">
+        <name>146898</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87647</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129911&#xA;      &#xA;      &#xA;        129912&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23150634765625" lon="11.35140323638916">
+        <name>129911</name>
+      </trkpt>
+      <trkpt lat="48.22893524169922" lon="11.355859756469727">
+        <name>129912</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86084</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128402&#xA;      &#xA;      &#xA;        128403&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2115478515625" lon="11.281566619873047">
+        <name>128402</name>
+      </trkpt>
+      <trkpt lat="48.210819244384766" lon="11.282329559326172">
+        <name>128403</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85042</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127393&#xA;      &#xA;      &#xA;        127394&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.218849182128906" lon="11.316901206970215">
+        <name>127393</name>
+      </trkpt>
+      <trkpt lat="48.2201042175293" lon="11.31918716430664">
+        <name>127394</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89992</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132181&#xA;      &#xA;      &#xA;        132182&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20662307739258" lon="11.390746116638184">
+        <name>132181</name>
+      </trkpt>
+      <trkpt lat="48.206851959228516" lon="11.38701343536377">
+        <name>132182</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86866</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129136&#xA;      &#xA;      &#xA;        129137&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.30646896362305" lon="11.600525856018066">
+        <name>129136</name>
+      </trkpt>
+      <trkpt lat="48.30804443359375" lon="11.603811264038086">
+        <name>129137</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85824</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128149&#xA;      &#xA;      &#xA;        128151&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.200706481933594" lon="11.308629035949707">
+        <name>128149</name>
+      </trkpt>
+      <trkpt lat="48.200286865234375" lon="11.308934211730957">
+        <name>128151</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87908</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130128&#xA;      &#xA;      &#xA;        130127&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.160919189453125" lon="11.428182601928711">
+        <name>130128</name>
+      </trkpt>
+      <trkpt lat="48.160640716552734" lon="11.427249908447266">
+        <name>130127</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87648</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129912&#xA;      &#xA;      &#xA;        129913&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22893524169922" lon="11.355859756469727">
+        <name>129912</name>
+      </trkpt>
+      <trkpt lat="48.22579574584961" lon="11.361201286315918">
+        <name>129913</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86085</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128403&#xA;      &#xA;      &#xA;        128404&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.210819244384766" lon="11.282329559326172">
+        <name>128403</name>
+      </trkpt>
+      <trkpt lat="48.210079193115234" lon="11.283623695373535">
+        <name>128404</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96505</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138183&#xA;      &#xA;      &#xA;        138185&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.34083938598633" lon="11.154935836791992">
+        <name>138183</name>
+      </trkpt>
+      <trkpt lat="48.34214782714844" lon="11.152365684509277">
+        <name>138185</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85043</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127394&#xA;      &#xA;      &#xA;        127395&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2201042175293" lon="11.31918716430664">
+        <name>127394</name>
+      </trkpt>
+      <trkpt lat="48.22093200683594" lon="11.321510314941406">
+        <name>127395</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89993</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132182&#xA;      &#xA;      &#xA;        132183&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.206851959228516" lon="11.38701343536377">
+        <name>132182</name>
+      </trkpt>
+      <trkpt lat="48.206912994384766" lon="11.385563850402832">
+        <name>132183</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86867</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129138&#xA;      &#xA;      &#xA;        129139&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.308143615722656" lon="11.603610038757324">
+        <name>129138</name>
+      </trkpt>
+      <trkpt lat="48.306583404541016" lon="11.600296974182129">
+        <name>129139</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105102</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146652&#xA;      &#xA;      &#xA;        146653&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.220001220703125" lon="11.631725311279297">
+        <name>146652</name>
+      </trkpt>
+      <trkpt lat="48.216957092285156" lon="11.637124061584473">
+        <name>146653</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85825</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128151&#xA;      &#xA;      &#xA;        128152&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.200286865234375" lon="11.308934211730957">
+        <name>128151</name>
+      </trkpt>
+      <trkpt lat="48.19999313354492" lon="11.308819770812988">
+        <name>128152</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87909</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130127&#xA;      &#xA;      &#xA;        129842&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.160640716552734" lon="11.427249908447266">
+        <name>130127</name>
+      </trkpt>
+      <trkpt lat="48.16069412231445" lon="11.426705360412598">
+        <name>129842</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87649</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129913&#xA;      &#xA;      &#xA;        129914&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22579574584961" lon="11.361201286315918">
+        <name>129913</name>
+      </trkpt>
+      <trkpt lat="48.22277069091797" lon="11.366313934326172">
+        <name>129914</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86086</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128404&#xA;      &#xA;      &#xA;        128405&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.210079193115234" lon="11.283623695373535">
+        <name>128404</name>
+      </trkpt>
+      <trkpt lat="48.209590911865234" lon="11.28472900390625">
+        <name>128405</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86868</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129139&#xA;      &#xA;      &#xA;        129140&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.306583404541016" lon="11.600296974182129">
+        <name>129139</name>
+      </trkpt>
+      <trkpt lat="48.30434036254883" lon="11.595612525939941">
+        <name>129140</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85826</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128152&#xA;      &#xA;      &#xA;        128153&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19999313354492" lon="11.308819770812988">
+        <name>128152</name>
+      </trkpt>
+      <trkpt lat="48.19977569580078" lon="11.308914184570312">
+        <name>128153</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87910</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128307&#xA;      &#xA;      &#xA;        130133&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19017791748047" lon="11.269234657287598">
+        <name>128307</name>
+      </trkpt>
+      <trkpt lat="48.18998336791992" lon="11.268189430236816">
+        <name>130133</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89994</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132183&#xA;      &#xA;      &#xA;        132184&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.206912994384766" lon="11.385563850402832">
+        <name>132183</name>
+      </trkpt>
+      <trkpt lat="48.2070426940918" lon="11.382288932800293">
+        <name>132184</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87650</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129914&#xA;      &#xA;      &#xA;        129915&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22277069091797" lon="11.366313934326172">
+        <name>129914</name>
+      </trkpt>
+      <trkpt lat="48.21953582763672" lon="11.371770858764648">
+        <name>129915</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86087</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128405&#xA;      &#xA;      &#xA;        128406&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.209590911865234" lon="11.28472900390625">
+        <name>128405</name>
+      </trkpt>
+      <trkpt lat="48.208839416503906" lon="11.285796165466309">
+        <name>128406</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86869</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129140&#xA;      &#xA;      &#xA;        129134&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.30434036254883" lon="11.595612525939941">
+        <name>129140</name>
+      </trkpt>
+      <trkpt lat="48.302024841308594" lon="11.590842247009277">
+        <name>129134</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85827</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128153&#xA;      &#xA;      &#xA;        128154&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19977569580078" lon="11.308914184570312">
+        <name>128153</name>
+      </trkpt>
+      <trkpt lat="48.199283599853516" lon="11.309504508972168">
+        <name>128154</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87911</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130133&#xA;      &#xA;      &#xA;        130131&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18998336791992" lon="11.268189430236816">
+        <name>130133</name>
+      </trkpt>
+      <trkpt lat="48.1895751953125" lon="11.265751838684082">
+        <name>130131</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89995</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132184&#xA;      &#xA;      &#xA;        132185&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2070426940918" lon="11.382288932800293">
+        <name>132184</name>
+      </trkpt>
+      <trkpt lat="48.20742416381836" lon="11.382231712341309">
+        <name>132185</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87651</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129915&#xA;      &#xA;      &#xA;        129916&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21953582763672" lon="11.371770858764648">
+        <name>129915</name>
+      </trkpt>
+      <trkpt lat="48.21617126464844" lon="11.377541542053223">
+        <name>129916</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86088</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128406&#xA;      &#xA;      &#xA;        128407&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.208839416503906" lon="11.285796165466309">
+        <name>128406</name>
+      </trkpt>
+      <trkpt lat="48.207889556884766" lon="11.28672981262207">
+        <name>128407</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86870</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129137&#xA;      &#xA;      &#xA;        129141&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.30804443359375" lon="11.603811264038086">
+        <name>129137</name>
+      </trkpt>
+      <trkpt lat="48.31064987182617" lon="11.609210014343262">
+        <name>129141</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105105</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146653&#xA;      &#xA;      &#xA;        146654&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.216957092285156" lon="11.637124061584473">
+        <name>146653</name>
+      </trkpt>
+      <trkpt lat="48.21350860595703" lon="11.642379760742188">
+        <name>146654</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85828</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128154&#xA;      &#xA;      &#xA;        128155&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.199283599853516" lon="11.309504508972168">
+        <name>128154</name>
+      </trkpt>
+      <trkpt lat="48.19835662841797" lon="11.310286521911621">
+        <name>128155</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87912</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130131&#xA;      &#xA;      &#xA;        130132&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1895751953125" lon="11.265751838684082">
+        <name>130131</name>
+      </trkpt>
+      <trkpt lat="48.18934631347656" lon="11.264227867126465">
+        <name>130132</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89996</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132185&#xA;      &#xA;      &#xA;        132186&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20742416381836" lon="11.382231712341309">
+        <name>132185</name>
+      </trkpt>
+      <trkpt lat="48.20787811279297" lon="11.381831169128418">
+        <name>132186</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87652</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129916&#xA;      &#xA;      &#xA;        129917&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21617126464844" lon="11.377541542053223">
+        <name>129916</name>
+      </trkpt>
+      <trkpt lat="48.21318054199219" lon="11.382625579833984">
+        <name>129917</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86089</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128407&#xA;      &#xA;      &#xA;        128408&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.207889556884766" lon="11.28672981262207">
+        <name>128407</name>
+      </trkpt>
+      <trkpt lat="48.2074089050293" lon="11.287471771240234">
+        <name>128408</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86871</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129141&#xA;      &#xA;      &#xA;        129142&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31064987182617" lon="11.609210014343262">
+        <name>129141</name>
+      </trkpt>
+      <trkpt lat="48.31338882446289" lon="11.614866256713867">
+        <name>129142</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105106</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146654&#xA;      &#xA;      &#xA;        146657&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21350860595703" lon="11.642379760742188">
+        <name>146654</name>
+      </trkpt>
+      <trkpt lat="48.21014404296875" lon="11.64717960357666">
+        <name>146657</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85829</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128155&#xA;      &#xA;      &#xA;        128156&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19835662841797" lon="11.310286521911621">
+        <name>128155</name>
+      </trkpt>
+      <trkpt lat="48.197872161865234" lon="11.311123847961426">
+        <name>128156</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87913</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130132&#xA;      &#xA;      &#xA;        130130&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18934631347656" lon="11.264227867126465">
+        <name>130132</name>
+      </trkpt>
+      <trkpt lat="48.18939971923828" lon="11.263713836669922">
+        <name>130130</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89997</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132186&#xA;      &#xA;      &#xA;        132187&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20787811279297" lon="11.381831169128418">
+        <name>132186</name>
+      </trkpt>
+      <trkpt lat="48.20823287963867" lon="11.381088256835938">
+        <name>132187</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87653</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129917&#xA;      &#xA;      &#xA;        129918&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21318054199219" lon="11.382625579833984">
+        <name>129917</name>
+      </trkpt>
+      <trkpt lat="48.20954513549805" lon="11.38876724243164">
+        <name>129918</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86090</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128408&#xA;      &#xA;      &#xA;        128409&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2074089050293" lon="11.287471771240234">
+        <name>128408</name>
+      </trkpt>
+      <trkpt lat="48.20695114135742" lon="11.288461685180664">
+        <name>128409</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86872</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129143&#xA;      &#xA;      &#xA;        129144&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31355667114258" lon="11.61478042602539">
+        <name>129143</name>
+      </trkpt>
+      <trkpt lat="48.310855865478516" lon="11.609152793884277">
+        <name>129144</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85830</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128156&#xA;      &#xA;      &#xA;        128157&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.197872161865234" lon="11.311123847961426">
+        <name>128156</name>
+      </trkpt>
+      <trkpt lat="48.197689056396484" lon="11.311543464660645">
+        <name>128157</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87914</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130132&#xA;      &#xA;      &#xA;        128309&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18934631347656" lon="11.264227867126465">
+        <name>130132</name>
+      </trkpt>
+      <trkpt lat="48.18912124633789" lon="11.262249946594238">
+        <name>128309</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89998</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132187&#xA;      &#xA;      &#xA;        132188&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20823287963867" lon="11.381088256835938">
+        <name>132187</name>
+      </trkpt>
+      <trkpt lat="48.20854949951172" lon="11.380002975463867">
+        <name>132188</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87654</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129918&#xA;      &#xA;      &#xA;        129919&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20954513549805" lon="11.38876724243164">
+        <name>129918</name>
+      </trkpt>
+      <trkpt lat="48.207340240478516" lon="11.392509460449219">
+        <name>129919</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86091</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128409&#xA;      &#xA;      &#xA;        128410&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20695114135742" lon="11.288461685180664">
+        <name>128409</name>
+      </trkpt>
+      <trkpt lat="48.206668853759766" lon="11.289644241333008">
+        <name>128410</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85049</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127395&#xA;      &#xA;      &#xA;        127401&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22093200683594" lon="11.321510314941406">
+        <name>127395</name>
+      </trkpt>
+      <trkpt lat="48.22138595581055" lon="11.324006080627441">
+        <name>127401</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86873</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129144&#xA;      &#xA;      &#xA;        129138&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.310855865478516" lon="11.609152793884277">
+        <name>129144</name>
+      </trkpt>
+      <trkpt lat="48.308143615722656" lon="11.603610038757324">
+        <name>129138</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85831</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128157&#xA;      &#xA;      &#xA;        128158&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.197689056396484" lon="11.311543464660645">
+        <name>128157</name>
+      </trkpt>
+      <trkpt lat="48.19739532470703" lon="11.31182861328125">
+        <name>128158</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87915</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130133&#xA;      &#xA;      &#xA;        130138&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18998336791992" lon="11.268189430236816">
+        <name>130133</name>
+      </trkpt>
+      <trkpt lat="48.1895637512207" lon="11.2682466506958">
+        <name>130138</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>89999</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132188&#xA;      &#xA;      &#xA;        132189&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20854949951172" lon="11.380002975463867">
+        <name>132188</name>
+      </trkpt>
+      <trkpt lat="48.208839416503906" lon="11.379411697387695">
+        <name>132189</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87655</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129919&#xA;      &#xA;      &#xA;        129920&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.207340240478516" lon="11.392509460449219">
+        <name>129919</name>
+      </trkpt>
+      <trkpt lat="48.20571517944336" lon="11.395195007324219">
+        <name>129920</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96512</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138185&#xA;      &#xA;      &#xA;        138190&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.34214782714844" lon="11.152365684509277">
+        <name>138185</name>
+      </trkpt>
+      <trkpt lat="48.34397506713867" lon="11.148510932922363">
+        <name>138190</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86874</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129142&#xA;      &#xA;      &#xA;        129145&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31338882446289" lon="11.614866256713867">
+        <name>129142</name>
+      </trkpt>
+      <trkpt lat="48.316009521484375" lon="11.620292663574219">
+        <name>129145</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85832</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128158&#xA;      &#xA;      &#xA;        128159&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19739532470703" lon="11.31182861328125">
+        <name>128158</name>
+      </trkpt>
+      <trkpt lat="48.19801712036133" lon="11.313657760620117">
+        <name>128159</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87916</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130138&#xA;      &#xA;      &#xA;        130139&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1895637512207" lon="11.2682466506958">
+        <name>130138</name>
+      </trkpt>
+      <trkpt lat="48.1893196105957" lon="11.268074989318848">
+        <name>130139</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90000</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132189&#xA;      &#xA;      &#xA;        132190&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.208839416503906" lon="11.379411697387695">
+        <name>132189</name>
+      </trkpt>
+      <trkpt lat="48.20924758911133" lon="11.378993034362793">
+        <name>132190</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87656</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129920&#xA;      &#xA;      &#xA;        129921&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20571517944336" lon="11.395195007324219">
+        <name>129920</name>
+      </trkpt>
+      <trkpt lat="48.2041015625" lon="11.39770793914795">
+        <name>129921</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96513</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138190&#xA;      &#xA;      &#xA;        138191&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.34397506713867" lon="11.148510932922363">
+        <name>138190</name>
+      </trkpt>
+      <trkpt lat="48.34568405151367" lon="11.144953727722168">
+        <name>138191</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86875</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129145&#xA;      &#xA;      &#xA;        129146&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.316009521484375" lon="11.620292663574219">
+        <name>129145</name>
+      </trkpt>
+      <trkpt lat="48.3184814453125" lon="11.625492095947266">
+        <name>129146</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85833</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128159&#xA;      &#xA;      &#xA;        128160&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19801712036133" lon="11.313657760620117">
+        <name>128159</name>
+      </trkpt>
+      <trkpt lat="48.198699951171875" lon="11.315277099609375">
+        <name>128160</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87917</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130139&#xA;      &#xA;      &#xA;        130140&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1893196105957" lon="11.268074989318848">
+        <name>130139</name>
+      </trkpt>
+      <trkpt lat="48.18906784057617" lon="11.267255783081055">
+        <name>130140</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90001</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132190&#xA;      &#xA;      &#xA;        132191&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20924758911133" lon="11.378993034362793">
+        <name>132190</name>
+      </trkpt>
+      <trkpt lat="48.210811614990234" lon="11.377774238586426">
+        <name>132191</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87657</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129921&#xA;      &#xA;      &#xA;        129922&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2041015625" lon="11.39770793914795">
+        <name>129921</name>
+      </trkpt>
+      <trkpt lat="48.2025032043457" lon="11.400165557861328">
+        <name>129922</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86094</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128412&#xA;      &#xA;      &#xA;        128413&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.205360412597656" lon="11.296099662780762">
+        <name>128412</name>
+      </trkpt>
+      <trkpt lat="48.204994201660156" lon="11.297147750854492">
+        <name>128413</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96514</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138191&#xA;      &#xA;      &#xA;        138193&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.34568405151367" lon="11.144953727722168">
+        <name>138191</name>
+      </trkpt>
+      <trkpt lat="48.34733200073242" lon="11.141311645507812" />
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86876</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129146&#xA;      &#xA;      &#xA;        129147&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.3184814453125" lon="11.625492095947266">
+        <name>129146</name>
+      </trkpt>
+      <trkpt lat="48.32040023803711" lon="11.629520416259766">
+        <name>129147</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85834</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128160&#xA;      &#xA;      &#xA;        128161&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.198699951171875" lon="11.315277099609375">
+        <name>128160</name>
+      </trkpt>
+      <trkpt lat="48.198917388916016" lon="11.31651496887207">
+        <name>128161</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87918</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130140&#xA;      &#xA;      &#xA;        130141&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18906784057617" lon="11.267255783081055">
+        <name>130140</name>
+      </trkpt>
+      <trkpt lat="48.18881607055664" lon="11.266361236572266">
+        <name>130141</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90002</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132191&#xA;      &#xA;      &#xA;        132192&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.210811614990234" lon="11.377774238586426">
+        <name>132191</name>
+      </trkpt>
+      <trkpt lat="48.211204528808594" lon="11.37743091583252">
+        <name>132192</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87658</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129922&#xA;      &#xA;      &#xA;        129923&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2025032043457" lon="11.400165557861328">
+        <name>129922</name>
+      </trkpt>
+      <trkpt lat="48.20044708251953" lon="11.403279304504395">
+        <name>129923</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86095</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128413&#xA;      &#xA;      &#xA;        128414&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.204994201660156" lon="11.297147750854492">
+        <name>128413</name>
+      </trkpt>
+      <trkpt lat="48.204345703125" lon="11.298385620117188">
+        <name>128414</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96515</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138193&#xA;      &#xA;      &#xA;        138194&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.34733200073242" lon="11.141311645507812" />
+      <trkpt lat="48.348472595214844" lon="11.139169692993164">
+        <name>138194</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85053</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127401&#xA;      &#xA;      &#xA;        127404&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22138595581055" lon="11.324006080627441">
+        <name>127401</name>
+      </trkpt>
+      <trkpt lat="48.22174072265625" lon="11.326957702636719">
+        <name>127404</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86877</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129148&#xA;      &#xA;      &#xA;        129149&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.32051467895508" lon="11.629263877868652">
+        <name>129148</name>
+      </trkpt>
+      <trkpt lat="48.31857681274414" lon="11.625178337097168">
+        <name>129149</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85835</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128161&#xA;      &#xA;      &#xA;        128162&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.198917388916016" lon="11.31651496887207">
+        <name>128161</name>
+      </trkpt>
+      <trkpt lat="48.19892883300781" lon="11.317886352539062">
+        <name>128162</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87919</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130141&#xA;      &#xA;      &#xA;        130142&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18881607055664" lon="11.266361236572266">
+        <name>130141</name>
+      </trkpt>
+      <trkpt lat="48.18865966796875" lon="11.265789031982422">
+        <name>130142</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90003</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132192&#xA;      &#xA;      &#xA;        132193&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.211204528808594" lon="11.37743091583252">
+        <name>132192</name>
+      </trkpt>
+      <trkpt lat="48.21168518066406" lon="11.376859664916992">
+        <name>132193</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87659</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129923&#xA;      &#xA;      &#xA;        129924&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20044708251953" lon="11.403279304504395">
+        <name>129923</name>
+      </trkpt>
+      <trkpt lat="48.19804763793945" lon="11.406907081604004">
+        <name>129924</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86096</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128414&#xA;      &#xA;      &#xA;        127349&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.204345703125" lon="11.298385620117188">
+        <name>128414</name>
+      </trkpt>
+      <trkpt lat="48.203460693359375" lon="11.299504280090332">
+        <name>127349</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96516</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138194&#xA;      &#xA;      &#xA;        138195&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.348472595214844" lon="11.139169692993164">
+        <name>138194</name>
+      </trkpt>
+      <trkpt lat="48.34998321533203" lon="11.136898040771484">
+        <name>138195</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86878</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129149&#xA;      &#xA;      &#xA;        129150&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31857681274414" lon="11.625178337097168">
+        <name>129149</name>
+      </trkpt>
+      <trkpt lat="48.3160514831543" lon="11.620007514953613">
+        <name>129150</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85836</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128162&#xA;      &#xA;      &#xA;        128163&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19892883300781" lon="11.317886352539062">
+        <name>128162</name>
+      </trkpt>
+      <trkpt lat="48.199249267578125" lon="11.318780899047852">
+        <name>128163</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87920</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130142&#xA;      &#xA;      &#xA;        130143&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18865966796875" lon="11.265789031982422">
+        <name>130142</name>
+      </trkpt>
+      <trkpt lat="48.18832015991211" lon="11.264970779418945">
+        <name>130143</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90004</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132193&#xA;      &#xA;      &#xA;        132194&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21168518066406" lon="11.376859664916992">
+        <name>132193</name>
+      </trkpt>
+      <trkpt lat="48.2124137878418" lon="11.37592601776123">
+        <name>132194</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87660</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129924&#xA;      &#xA;      &#xA;        129925&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19804763793945" lon="11.406907081604004">
+        <name>129924</name>
+      </trkpt>
+      <trkpt lat="48.19572830200195" lon="11.410449028015137">
+        <name>129925</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96517</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138195&#xA;      &#xA;      &#xA;        138196&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.34998321533203" lon="11.136898040771484">
+        <name>138195</name>
+      </trkpt>
+      <trkpt lat="48.3516960144043" lon="11.13475513458252">
+        <name>138196</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86879</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129150&#xA;      &#xA;      &#xA;        129143&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.3160514831543" lon="11.620007514953613">
+        <name>129150</name>
+      </trkpt>
+      <trkpt lat="48.31355667114258" lon="11.61478042602539">
+        <name>129143</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105114</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146657&#xA;      &#xA;      &#xA;        146663&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21014404296875" lon="11.64717960357666">
+        <name>146657</name>
+      </trkpt>
+      <trkpt lat="48.20778274536133" lon="11.65080738067627">
+        <name>146663</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85837</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128163&#xA;      &#xA;      &#xA;        128164&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.199249267578125" lon="11.318780899047852">
+        <name>128163</name>
+      </trkpt>
+      <trkpt lat="48.20064163208008" lon="11.32066822052002">
+        <name>128164</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87921</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130143&#xA;      &#xA;      &#xA;        130144&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18832015991211" lon="11.264970779418945">
+        <name>130143</name>
+      </trkpt>
+      <trkpt lat="48.18815612792969" lon="11.264437675476074">
+        <name>130144</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90005</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132194&#xA;      &#xA;      &#xA;        132195&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2124137878418" lon="11.37592601776123">
+        <name>132194</name>
+      </trkpt>
+      <trkpt lat="48.213287353515625" lon="11.374726295471191">
+        <name>132195</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105375</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146933&#xA;      &#xA;      &#xA;        146932&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03113555908203" lon="11.615699768066406">
+        <name>146933</name>
+      </trkpt>
+      <trkpt lat="48.0298957824707" lon="11.619613647460938">
+        <name>146932</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87661</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129925&#xA;      &#xA;      &#xA;        129926&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19572830200195" lon="11.410449028015137">
+        <name>129925</name>
+      </trkpt>
+      <trkpt lat="48.19427490234375" lon="11.41264820098877">
+        <name>129926</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86880</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129147&#xA;      &#xA;      &#xA;        129151&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.32040023803711" lon="11.629520416259766">
+        <name>129147</name>
+      </trkpt>
+      <trkpt lat="48.322574615478516" lon="11.633947372436523">
+        <name>129151</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105115</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146663&#xA;      &#xA;      &#xA;        146664&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20778274536133" lon="11.65080738067627">
+        <name>146663</name>
+      </trkpt>
+      <trkpt lat="48.20498275756836" lon="11.65574836730957">
+        <name>146664</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85838</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128164&#xA;      &#xA;      &#xA;        128165&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20064163208008" lon="11.32066822052002">
+        <name>128164</name>
+      </trkpt>
+      <trkpt lat="48.20155334472656" lon="11.321828842163086">
+        <name>128165</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87922</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130144&#xA;      &#xA;      &#xA;        130145&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18815612792969" lon="11.264437675476074">
+        <name>130144</name>
+      </trkpt>
+      <trkpt lat="48.187950134277344" lon="11.263389587402344">
+        <name>130145</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90006</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132195&#xA;      &#xA;      &#xA;        132196&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.213287353515625" lon="11.374726295471191">
+        <name>132195</name>
+      </trkpt>
+      <trkpt lat="48.21403884887695" lon="11.373507499694824">
+        <name>132196</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105376</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146932&#xA;      &#xA;      &#xA;        146931&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.0298957824707" lon="11.619613647460938">
+        <name>146932</name>
+      </trkpt>
+      <trkpt lat="48.028865814208984" lon="11.623984336853027">
+        <name>146931</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87662</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129926&#xA;      &#xA;      &#xA;        129927&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19427490234375" lon="11.41264820098877">
+        <name>129926</name>
+      </trkpt>
+      <trkpt lat="48.19248580932617" lon="11.41533374786377">
+        <name>129927</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105116</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146664&#xA;      &#xA;      &#xA;        146665&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20498275756836" lon="11.65574836730957">
+        <name>146664</name>
+      </trkpt>
+      <trkpt lat="48.20323181152344" lon="11.659547805786133">
+        <name>146665</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85839</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128165&#xA;      &#xA;      &#xA;        128166&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20155334472656" lon="11.321828842163086">
+        <name>128165</name>
+      </trkpt>
+      <trkpt lat="48.20244598388672" lon="11.3229341506958">
+        <name>128166</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87923</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130145&#xA;      &#xA;      &#xA;        130146&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.187950134277344" lon="11.263389587402344">
+        <name>130145</name>
+      </trkpt>
+      <trkpt lat="48.187774658203125" lon="11.262151718139648">
+        <name>130146</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90007</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132196&#xA;      &#xA;      &#xA;        132197&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21403884887695" lon="11.373507499694824">
+        <name>132196</name>
+      </trkpt>
+      <trkpt lat="48.21506881713867" lon="11.371984481811523">
+        <name>132197</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86881</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129151&#xA;      &#xA;      &#xA;        129152&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.322574615478516" lon="11.633947372436523">
+        <name>129151</name>
+      </trkpt>
+      <trkpt lat="48.324378967285156" lon="11.637947082519531">
+        <name>129152</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105377</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146931&#xA;      &#xA;      &#xA;        146913&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.028865814208984" lon="11.623984336853027">
+        <name>146931</name>
+      </trkpt>
+      <trkpt lat="48.0281982421875" lon="11.627553939819336">
+        <name>146913</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87663</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129927&#xA;      &#xA;      &#xA;        129928&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19248580932617" lon="11.41533374786377">
+        <name>129927</name>
+      </trkpt>
+      <trkpt lat="48.19073486328125" lon="11.417933464050293">
+        <name>129928</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85840</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128166&#xA;      &#xA;      &#xA;        128167&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20244598388672" lon="11.3229341506958">
+        <name>128166</name>
+      </trkpt>
+      <trkpt lat="48.20305252075195" lon="11.323829650878906">
+        <name>128167</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87924</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130146&#xA;      &#xA;      &#xA;        130147&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.187774658203125" lon="11.262151718139648">
+        <name>130146</name>
+      </trkpt>
+      <trkpt lat="48.1876106262207" lon="11.261618614196777">
+        <name>130147</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90008</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132197&#xA;      &#xA;      &#xA;        132198&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21506881713867" lon="11.371984481811523">
+        <name>132197</name>
+      </trkpt>
+      <trkpt lat="48.2154426574707" lon="11.371563911437988">
+        <name>132198</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86882</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129152&#xA;      &#xA;      &#xA;        129153&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.324378967285156" lon="11.637947082519531">
+        <name>129152</name>
+      </trkpt>
+      <trkpt lat="48.325897216796875" lon="11.641746520996094">
+        <name>129153</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87664</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129928&#xA;      &#xA;      &#xA;        129929&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19073486328125" lon="11.417933464050293">
+        <name>129928</name>
+      </trkpt>
+      <trkpt lat="48.189117431640625" lon="11.420389175415039">
+        <name>129929</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85841</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128167&#xA;      &#xA;      &#xA;        128168&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20305252075195" lon="11.323829650878906">
+        <name>128167</name>
+      </trkpt>
+      <trkpt lat="48.2030029296875" lon="11.324077606201172">
+        <name>128168</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87925</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130147&#xA;      &#xA;      &#xA;        130148&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1876106262207" lon="11.261618614196777">
+        <name>130147</name>
+      </trkpt>
+      <trkpt lat="48.187156677246094" lon="11.260856628417969">
+        <name>130148</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90009</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132198&#xA;      &#xA;      &#xA;        132199&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2154426574707" lon="11.371563911437988">
+        <name>132198</name>
+      </trkpt>
+      <trkpt lat="48.21577072143555" lon="11.371126174926758">
+        <name>132199</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86883</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129154&#xA;      &#xA;      &#xA;        129155&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.32606887817383" lon="11.641717910766602">
+        <name>129154</name>
+      </trkpt>
+      <trkpt lat="48.324607849121094" lon="11.6380033493042">
+        <name>129155</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87665</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129929&#xA;      &#xA;      &#xA;        129930&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.189117431640625" lon="11.420389175415039">
+        <name>129929</name>
+      </trkpt>
+      <trkpt lat="48.18769073486328" lon="11.422589302062988">
+        <name>129930</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85060</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127404&#xA;      &#xA;      &#xA;        127412&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22174072265625" lon="11.326957702636719">
+        <name>127404</name>
+      </trkpt>
+      <trkpt lat="48.2223014831543" lon="11.329416275024414">
+        <name>127412</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87926</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130148&#xA;      &#xA;      &#xA;        130149&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.187156677246094" lon="11.260856628417969">
+        <name>130148</name>
+      </trkpt>
+      <trkpt lat="48.18678283691406" lon="11.260514259338379">
+        <name>130149</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90010</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132199&#xA;      &#xA;      &#xA;        132200&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21577072143555" lon="11.371126174926758">
+        <name>132199</name>
+      </trkpt>
+      <trkpt lat="48.21609115600586" lon="11.370402336120605">
+        <name>132200</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86884</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129155&#xA;      &#xA;      &#xA;        129156&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.324607849121094" lon="11.6380033493042">
+        <name>129155</name>
+      </trkpt>
+      <trkpt lat="48.32279968261719" lon="11.633976936340332">
+        <name>129156</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87666</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129930&#xA;      &#xA;      &#xA;        129931&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18769073486328" lon="11.422589302062988">
+        <name>129930</name>
+      </trkpt>
+      <trkpt lat="48.18608474731445" lon="11.425017356872559">
+        <name>129931</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85061</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127412&#xA;      &#xA;      &#xA;        127413&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2223014831543" lon="11.329416275024414">
+        <name>127412</name>
+      </trkpt>
+      <trkpt lat="48.223350524902344" lon="11.331987380981445">
+        <name>127413</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105120</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146665&#xA;      &#xA;      &#xA;        146675&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20323181152344" lon="11.659547805786133">
+        <name>146665</name>
+      </trkpt>
+      <trkpt lat="48.20144271850586" lon="11.663862228393555">
+        <name>146675</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87927</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130149&#xA;      &#xA;      &#xA;        130150&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18678283691406" lon="11.260514259338379">
+        <name>130149</name>
+      </trkpt>
+      <trkpt lat="48.18574142456055" lon="11.259047508239746">
+        <name>130150</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90011</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132200&#xA;      &#xA;      &#xA;        132201&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21609115600586" lon="11.370402336120605">
+        <name>132200</name>
+      </trkpt>
+      <trkpt lat="48.216670989990234" lon="11.36941146850586">
+        <name>132201</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86885</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129156&#xA;      &#xA;      &#xA;        129148&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.32279968261719" lon="11.633976936340332">
+        <name>129156</name>
+      </trkpt>
+      <trkpt lat="48.32051467895508" lon="11.629263877868652">
+        <name>129148</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87667</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129931&#xA;      &#xA;      &#xA;        129932&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18608474731445" lon="11.425017356872559">
+        <name>129931</name>
+      </trkpt>
+      <trkpt lat="48.18460464477539" lon="11.427245140075684">
+        <name>129932</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85844</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128168&#xA;      &#xA;      &#xA;        128170&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2030029296875" lon="11.324077606201172">
+        <name>128168</name>
+      </trkpt>
+      <trkpt lat="48.20318603515625" lon="11.324152946472168">
+        <name>128170</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87928</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130130&#xA;      &#xA;      &#xA;        130134&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18939971923828" lon="11.263713836669922">
+        <name>130130</name>
+      </trkpt>
+      <trkpt lat="48.18965148925781" lon="11.263504028320312">
+        <name>130134</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90012</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132201&#xA;      &#xA;      &#xA;        132202&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.216670989990234" lon="11.36941146850586">
+        <name>132201</name>
+      </trkpt>
+      <trkpt lat="48.217498779296875" lon="11.368268966674805">
+        <name>132202</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86886</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129153&#xA;      &#xA;      &#xA;        129157&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.325897216796875" lon="11.641746520996094">
+        <name>129153</name>
+      </trkpt>
+      <trkpt lat="48.327674865722656" lon="11.647058486938477">
+        <name>129157</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87668</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129932&#xA;      &#xA;      &#xA;        129933&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18460464477539" lon="11.427245140075684">
+        <name>129932</name>
+      </trkpt>
+      <trkpt lat="48.183345794677734" lon="11.429159164428711">
+        <name>129933</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105122</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146675&#xA;      &#xA;      &#xA;        146676&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20144271850586" lon="11.663862228393555">
+        <name>146675</name>
+      </trkpt>
+      <trkpt lat="48.19957733154297" lon="11.66911792755127">
+        <name>146676</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85845</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128170&#xA;      &#xA;      &#xA;        128171&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20318603515625" lon="11.324152946472168">
+        <name>128170</name>
+      </trkpt>
+      <trkpt lat="48.20320129394531" lon="11.323911666870117">
+        <name>128171</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87929</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130134&#xA;      &#xA;      &#xA;        130135&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18965148925781" lon="11.263504028320312">
+        <name>130134</name>
+      </trkpt>
+      <trkpt lat="48.18996047973633" lon="11.263809204101562">
+        <name>130135</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90013</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132202&#xA;      &#xA;      &#xA;        132203&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.217498779296875" lon="11.368268966674805">
+        <name>132202</name>
+      </trkpt>
+      <trkpt lat="48.21792984008789" lon="11.367925643920898">
+        <name>132203</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86887</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129157&#xA;      &#xA;      &#xA;        129158&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.327674865722656" lon="11.647058486938477">
+        <name>129157</name>
+      </trkpt>
+      <trkpt lat="48.32912063598633" lon="11.652200698852539">
+        <name>129158</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87669</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129933&#xA;      &#xA;      &#xA;        129934&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.183345794677734" lon="11.429159164428711">
+        <name>129933</name>
+      </trkpt>
+      <trkpt lat="48.182682037353516" lon="11.430130004882812">
+        <name>129934</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85064</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127413&#xA;      &#xA;      &#xA;        127414&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.223350524902344" lon="11.331987380981445">
+        <name>127413</name>
+      </trkpt>
+      <trkpt lat="48.22465896606445" lon="11.334139823913574">
+        <name>127414</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85846</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128171&#xA;      &#xA;      &#xA;        128167&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20320129394531" lon="11.323911666870117">
+        <name>128171</name>
+      </trkpt>
+      <trkpt lat="48.20305252075195" lon="11.323829650878906">
+        <name>128167</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87930</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130135&#xA;      &#xA;      &#xA;        130136&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18996047973633" lon="11.263809204101562">
+        <name>130135</name>
+      </trkpt>
+      <trkpt lat="48.1901969909668" lon="11.26481819152832">
+        <name>130136</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90014</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132203&#xA;      &#xA;      &#xA;        132204&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21792984008789" lon="11.367925643920898">
+        <name>132203</name>
+      </trkpt>
+      <trkpt lat="48.21843338012695" lon="11.367830276489258">
+        <name>132204</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86888</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129159&#xA;      &#xA;      &#xA;        129160&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.32927322387695" lon="11.65185832977295">
+        <name>129159</name>
+      </trkpt>
+      <trkpt lat="48.32782745361328" lon="11.646973609924316">
+        <name>129160</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87670</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128965&#xA;      &#xA;      &#xA;        129935&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17868423461914" lon="11.42976188659668">
+        <name>128965</name>
+      </trkpt>
+      <trkpt lat="48.179805755615234" lon="11.430930137634277">
+        <name>129935</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85847</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128170&#xA;      &#xA;      &#xA;        128172&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20318603515625" lon="11.324152946472168">
+        <name>128170</name>
+      </trkpt>
+      <trkpt lat="48.203590393066406" lon="11.324623107910156">
+        <name>128172</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87931</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130136&#xA;      &#xA;      &#xA;        130137&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1901969909668" lon="11.26481819152832">
+        <name>130136</name>
+      </trkpt>
+      <trkpt lat="48.190364837646484" lon="11.26571273803711">
+        <name>130137</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90015</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132204&#xA;      &#xA;      &#xA;        132205&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21843338012695" lon="11.367830276489258">
+        <name>132204</name>
+      </trkpt>
+      <trkpt lat="48.21870422363281" lon="11.367658615112305">
+        <name>132205</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86889</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129160&#xA;      &#xA;      &#xA;        129154&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.32782745361328" lon="11.646973609924316">
+        <name>129160</name>
+      </trkpt>
+      <trkpt lat="48.32606887817383" lon="11.641717910766602">
+        <name>129154</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87671</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129935&#xA;      &#xA;      &#xA;        129936&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.179805755615234" lon="11.430930137634277">
+        <name>129935</name>
+      </trkpt>
+      <trkpt lat="48.1802978515625" lon="11.43144416809082">
+        <name>129936</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85848</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128172&#xA;      &#xA;      &#xA;        128173&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.203590393066406" lon="11.324623107910156">
+        <name>128172</name>
+      </trkpt>
+      <trkpt lat="48.204139709472656" lon="11.325079917907715">
+        <name>128173</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87932</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130137&#xA;      &#xA;      &#xA;        130151&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.190364837646484" lon="11.26571273803711">
+        <name>130137</name>
+      </trkpt>
+      <trkpt lat="48.19172668457031" lon="11.264799118041992">
+        <name>130151</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90016</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132205&#xA;      &#xA;      &#xA;        132206&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21870422363281" lon="11.367658615112305">
+        <name>132205</name>
+      </trkpt>
+      <trkpt lat="48.21900939941406" lon="11.367182731628418">
+        <name>132206</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86890</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129158&#xA;      &#xA;      &#xA;        129161&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.32912063598633" lon="11.652200698852539">
+        <name>129158</name>
+      </trkpt>
+      <trkpt lat="48.33015060424805" lon="11.65662956237793">
+        <name>129161</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87672</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129936&#xA;      &#xA;      &#xA;        129937&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1802978515625" lon="11.43144416809082">
+        <name>129936</name>
+      </trkpt>
+      <trkpt lat="48.181915283203125" lon="11.432844161987305">
+        <name>129937</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85849</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128173&#xA;      &#xA;      &#xA;        128174&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.204139709472656" lon="11.325079917907715">
+        <name>128173</name>
+      </trkpt>
+      <trkpt lat="48.20479202270508" lon="11.325371742248535">
+        <name>128174</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87933</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130151&#xA;      &#xA;      &#xA;        130152&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19172668457031" lon="11.264799118041992">
+        <name>130151</name>
+      </trkpt>
+      <trkpt lat="48.193153381347656" lon="11.26382827758789">
+        <name>130152</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90017</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132206&#xA;      &#xA;      &#xA;        132207&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21900939941406" lon="11.367182731628418">
+        <name>132206</name>
+      </trkpt>
+      <trkpt lat="48.22047805786133" lon="11.364363670349121">
+        <name>132207</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86891</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129161&#xA;      &#xA;      &#xA;        129162&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.33015060424805" lon="11.65662956237793">
+        <name>129161</name>
+      </trkpt>
+      <trkpt lat="48.33121109008789" lon="11.662342071533203">
+        <name>129162</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105387</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146933&#xA;      &#xA;      &#xA;        146940&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03113555908203" lon="11.615699768066406">
+        <name>146933</name>
+      </trkpt>
+      <trkpt lat="48.03242111206055" lon="11.612329483032227">
+        <name>146940</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87673</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129937&#xA;      &#xA;      &#xA;        128968&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.181915283203125" lon="11.432844161987305">
+        <name>129937</name>
+      </trkpt>
+      <trkpt lat="48.18305206298828" lon="11.433813095092773">
+        <name>128968</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85850</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128174&#xA;      &#xA;      &#xA;        128175&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20479202270508" lon="11.325371742248535">
+        <name>128174</name>
+      </trkpt>
+      <trkpt lat="48.20512390136719" lon="11.325587272644043">
+        <name>128175</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87934</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130152&#xA;      &#xA;      &#xA;        130153&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.193153381347656" lon="11.26382827758789">
+        <name>130152</name>
+      </trkpt>
+      <trkpt lat="48.193572998046875" lon="11.26352310180664">
+        <name>130153</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90018</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132207&#xA;      &#xA;      &#xA;        132208&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22047805786133" lon="11.364363670349121">
+        <name>132207</name>
+      </trkpt>
+      <trkpt lat="48.22175216674805" lon="11.361953735351562">
+        <name>132208</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86892</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129163&#xA;      &#xA;      &#xA;        129164&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.3314208984375" lon="11.662171363830566">
+        <name>129163</name>
+      </trkpt>
+      <trkpt lat="48.33035659790039" lon="11.656457901000977">
+        <name>129164</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87674</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129934&#xA;      &#xA;      &#xA;        129938&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.182682037353516" lon="11.430130004882812">
+        <name>129934</name>
+      </trkpt>
+      <trkpt lat="48.182090759277344" lon="11.43061637878418">
+        <name>129938</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85069</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127414&#xA;      &#xA;      &#xA;        127415&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22465896606445" lon="11.334139823913574">
+        <name>127414</name>
+      </trkpt>
+      <trkpt lat="48.22488784790039" lon="11.334197044372559">
+        <name>127415</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105128</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146676&#xA;      &#xA;      &#xA;        146677&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19957733154297" lon="11.66911792755127">
+        <name>146676</name>
+      </trkpt>
+      <trkpt lat="48.19807052612305" lon="11.673717498779297">
+        <name>146677</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85851</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128175&#xA;      &#xA;      &#xA;        128176&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20512390136719" lon="11.325587272644043">
+        <name>128175</name>
+      </trkpt>
+      <trkpt lat="48.205440521240234" lon="11.325904846191406">
+        <name>128176</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87935</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130153&#xA;      &#xA;      &#xA;        130154&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.193572998046875" lon="11.26352310180664">
+        <name>130153</name>
+      </trkpt>
+      <trkpt lat="48.19398880004883" lon="11.263199806213379">
+        <name>130154</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90019</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132208&#xA;      &#xA;      &#xA;        132209&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22175216674805" lon="11.361953735351562">
+        <name>132208</name>
+      </trkpt>
+      <trkpt lat="48.22293472290039" lon="11.359668731689453">
+        <name>132209</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86893</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129164&#xA;      &#xA;      &#xA;        129159&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.33035659790039" lon="11.656457901000977">
+        <name>129164</name>
+      </trkpt>
+      <trkpt lat="48.32927322387695" lon="11.65185832977295">
+        <name>129159</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105389</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146940&#xA;      &#xA;      &#xA;        146941&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03242111206055" lon="11.612329483032227">
+        <name>146940</name>
+      </trkpt>
+      <trkpt lat="48.0339469909668" lon="11.608901023864746">
+        <name>146941</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87675</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129938&#xA;      &#xA;      &#xA;        129939&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.182090759277344" lon="11.43061637878418">
+        <name>129938</name>
+      </trkpt>
+      <trkpt lat="48.18155288696289" lon="11.43061637878418">
+        <name>129939</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105129</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146677&#xA;      &#xA;      &#xA;        146678&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19807052612305" lon="11.673717498779297">
+        <name>146677</name>
+      </trkpt>
+      <trkpt lat="48.196720123291016" lon="11.6783447265625">
+        <name>146678</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87936</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130154&#xA;      &#xA;      &#xA;        130155&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19398880004883" lon="11.263199806213379">
+        <name>130154</name>
+      </trkpt>
+      <trkpt lat="48.19478988647461" lon="11.263179779052734">
+        <name>130155</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90020</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132209&#xA;      &#xA;      &#xA;        132210&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22293472290039" lon="11.359668731689453">
+        <name>132209</name>
+      </trkpt>
+      <trkpt lat="48.223392486572266" lon="11.359068870544434">
+        <name>132210</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86894</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129162&#xA;      &#xA;      &#xA;        129165&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.33121109008789" lon="11.662342071533203">
+        <name>129162</name>
+      </trkpt>
+      <trkpt lat="48.33191680908203" lon="11.667369842529297">
+        <name>129165</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87676</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129939&#xA;      &#xA;      &#xA;        129940&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18155288696289" lon="11.43061637878418">
+        <name>129939</name>
+      </trkpt>
+      <trkpt lat="48.181175231933594" lon="11.430559158325195">
+        <name>129940</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105130</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146678&#xA;      &#xA;      &#xA;        146679&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.196720123291016" lon="11.6783447265625">
+        <name>146678</name>
+      </trkpt>
+      <trkpt lat="48.19567108154297" lon="11.682172775268555">
+        <name>146679</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87937</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130155&#xA;      &#xA;      &#xA;        130156&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19478988647461" lon="11.263179779052734">
+        <name>130155</name>
+      </trkpt>
+      <trkpt lat="48.1944465637207" lon="11.26144790649414">
+        <name>130156</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90021</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132210&#xA;      &#xA;      &#xA;        132211&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.223392486572266" lon="11.359068870544434">
+        <name>132210</name>
+      </trkpt>
+      <trkpt lat="48.22386932373047" lon="11.358469009399414">
+        <name>132211</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86895</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129165&#xA;      &#xA;      &#xA;        129166&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.33191680908203" lon="11.667369842529297">
+        <name>129165</name>
+      </trkpt>
+      <trkpt lat="48.3324089050293" lon="11.67239761352539">
+        <name>129166</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105391</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146941&#xA;      &#xA;      &#xA;        146942&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.0339469909668" lon="11.608901023864746">
+        <name>146941</name>
+      </trkpt>
+      <trkpt lat="48.03491973876953" lon="11.606958389282227">
+        <name>146942</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87677</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129940&#xA;      &#xA;      &#xA;        129941&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.181175231933594" lon="11.430559158325195">
+        <name>129940</name>
+      </trkpt>
+      <trkpt lat="48.1807975769043" lon="11.430644035339355">
+        <name>129941</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85854</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128178&#xA;      &#xA;      &#xA;        128179&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20518493652344" lon="11.326984405517578">
+        <name>128178</name>
+      </trkpt>
+      <trkpt lat="48.204078674316406" lon="11.328584671020508">
+        <name>128179</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87938</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130156&#xA;      &#xA;      &#xA;        130157&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1944465637207" lon="11.26144790649414">
+        <name>130156</name>
+      </trkpt>
+      <trkpt lat="48.19432067871094" lon="11.260476112365723">
+        <name>130157</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90022</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132211&#xA;      &#xA;      &#xA;        132212&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22386932373047" lon="11.358469009399414">
+        <name>132211</name>
+      </trkpt>
+      <trkpt lat="48.22364044189453" lon="11.357954978942871">
+        <name>132212</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86896</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129166&#xA;      &#xA;      &#xA;        129167&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.3324089050293" lon="11.67239761352539">
+        <name>129166</name>
+      </trkpt>
+      <trkpt lat="48.3326416015625" lon="11.676711082458496">
+        <name>129167</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87678</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129941&#xA;      &#xA;      &#xA;        129942&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1807975769043" lon="11.430644035339355">
+        <name>129941</name>
+      </trkpt>
+      <trkpt lat="48.1802978515625" lon="11.430959701538086">
+        <name>129942</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85855</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128179&#xA;      &#xA;      &#xA;        128180&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.204078674316406" lon="11.328584671020508">
+        <name>128179</name>
+      </trkpt>
+      <trkpt lat="48.2032470703125" lon="11.329904556274414">
+        <name>128180</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87939</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130157&#xA;      &#xA;      &#xA;        130158&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19432067871094" lon="11.260476112365723">
+        <name>130157</name>
+      </trkpt>
+      <trkpt lat="48.19428253173828" lon="11.259542465209961">
+        <name>130158</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90023</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132212&#xA;      &#xA;      &#xA;        132213&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22364044189453" lon="11.357954978942871">
+        <name>132212</name>
+      </trkpt>
+      <trkpt lat="48.222999572753906" lon="11.356821060180664">
+        <name>132213</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86897</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129168&#xA;      &#xA;      &#xA;        129169&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.33285140991211" lon="11.676796913146973">
+        <name>129168</name>
+      </trkpt>
+      <trkpt lat="48.332618713378906" lon="11.672340393066406">
+        <name>129169</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105393</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146942&#xA;      &#xA;      &#xA;        146943&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03491973876953" lon="11.606958389282227">
+        <name>146942</name>
+      </trkpt>
+      <trkpt lat="48.035133361816406" lon="11.60612964630127">
+        <name>146943</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87679</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129942&#xA;      &#xA;      &#xA;        129935&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1802978515625" lon="11.430959701538086">
+        <name>129942</name>
+      </trkpt>
+      <trkpt lat="48.179805755615234" lon="11.430930137634277">
+        <name>129935</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85074</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127415&#xA;      &#xA;      &#xA;        127416&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22488784790039" lon="11.334197044372559">
+        <name>127415</name>
+      </trkpt>
+      <trkpt lat="48.22509002685547" lon="11.333587646484375">
+        <name>127416</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85856</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128180&#xA;      &#xA;      &#xA;        128181&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2032470703125" lon="11.329904556274414">
+        <name>128180</name>
+      </trkpt>
+      <trkpt lat="48.202396392822266" lon="11.330984115600586">
+        <name>128181</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87940</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130158&#xA;      &#xA;      &#xA;        130159&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19428253173828" lon="11.259542465209961">
+        <name>130158</name>
+      </trkpt>
+      <trkpt lat="48.194305419921875" lon="11.258018493652344">
+        <name>130159</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90024</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132213&#xA;      &#xA;      &#xA;        132214&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.222999572753906" lon="11.356821060180664">
+        <name>132213</name>
+      </trkpt>
+      <trkpt lat="48.222469329833984" lon="11.35586929321289">
+        <name>132214</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86898</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129169&#xA;      &#xA;      &#xA;        129170&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.332618713378906" lon="11.672340393066406">
+        <name>129169</name>
+      </trkpt>
+      <trkpt lat="48.33216857910156" lon="11.667455673217773">
+        <name>129170</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87680</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128964&#xA;      &#xA;      &#xA;        129943&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1785774230957" lon="11.43030834197998">
+        <name>128964</name>
+      </trkpt>
+      <trkpt lat="48.180545806884766" lon="11.432272911071777">
+        <name>129943</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86638</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128914&#xA;      &#xA;      &#xA;        128913&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15797424316406" lon="11.413873672485352">
+        <name>128914</name>
+      </trkpt>
+      <trkpt lat="48.1573486328125" lon="11.414244651794434">
+        <name>128913</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85075</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127416&#xA;      &#xA;      &#xA;        127418&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22509002685547" lon="11.333587646484375">
+        <name>127416</name>
+      </trkpt>
+      <trkpt lat="48.22480010986328" lon="11.33303451538086">
+        <name>127418</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85857</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128181&#xA;      &#xA;      &#xA;        128182&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.202396392822266" lon="11.330984115600586">
+        <name>128181</name>
+      </trkpt>
+      <trkpt lat="48.201602935791016" lon="11.332076072692871">
+        <name>128182</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87941</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130159&#xA;      &#xA;      &#xA;        130160&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.194305419921875" lon="11.258018493652344">
+        <name>130159</name>
+      </trkpt>
+      <trkpt lat="48.194393157958984" lon="11.256341934204102">
+        <name>130160</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90025</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132214&#xA;      &#xA;      &#xA;        132215&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.222469329833984" lon="11.35586929321289">
+        <name>132214</name>
+      </trkpt>
+      <trkpt lat="48.22206115722656" lon="11.35512638092041">
+        <name>132215</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86899</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129170&#xA;      &#xA;      &#xA;        129163&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.33216857910156" lon="11.667455673217773">
+        <name>129170</name>
+      </trkpt>
+      <trkpt lat="48.3314208984375" lon="11.662171363830566">
+        <name>129163</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105395</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146943&#xA;      &#xA;      &#xA;        146944&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.035133361816406" lon="11.60612964630127">
+        <name>146943</name>
+      </trkpt>
+      <trkpt lat="48.035037994384766" lon="11.605672836303711">
+        <name>146944</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87681</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129943&#xA;      &#xA;      &#xA;        129944&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.180545806884766" lon="11.432272911071777">
+        <name>129943</name>
+      </trkpt>
+      <trkpt lat="48.181480407714844" lon="11.43312931060791">
+        <name>129944</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86639</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128913&#xA;      &#xA;      &#xA;        128912&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1573486328125" lon="11.414244651794434">
+        <name>128913</name>
+      </trkpt>
+      <trkpt lat="48.157100677490234" lon="11.414644241333008">
+        <name>128912</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85076</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127418&#xA;      &#xA;      &#xA;        127421&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22480010986328" lon="11.33303451538086">
+        <name>127418</name>
+      </trkpt>
+      <trkpt lat="48.22435760498047" lon="11.333263397216797">
+        <name>127421</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85858</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128182&#xA;      &#xA;      &#xA;        128183&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.201602935791016" lon="11.332076072692871">
+        <name>128182</name>
+      </trkpt>
+      <trkpt lat="48.20127868652344" lon="11.333345413208008">
+        <name>128183</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87942</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130160&#xA;      &#xA;      &#xA;        130161&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.194393157958984" lon="11.256341934204102">
+        <name>130160</name>
+      </trkpt>
+      <trkpt lat="48.19242858886719" lon="11.256152153015137">
+        <name>130161</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90026</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132215&#xA;      &#xA;      &#xA;        132216&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22206115722656" lon="11.35512638092041">
+        <name>132215</name>
+      </trkpt>
+      <trkpt lat="48.222251892089844" lon="11.354974746704102">
+        <name>132216</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86900</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129167&#xA;      &#xA;      &#xA;        129171&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.3326416015625" lon="11.676711082458496">
+        <name>129167</name>
+      </trkpt>
+      <trkpt lat="48.33273696899414" lon="11.682480812072754">
+        <name>129171</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87682</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129944&#xA;      &#xA;      &#xA;        128969&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.181480407714844" lon="11.43312931060791">
+        <name>129944</name>
+      </trkpt>
+      <trkpt lat="48.18302536010742" lon="11.434365272521973">
+        <name>128969</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86640</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128912&#xA;      &#xA;      &#xA;        128911&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.157100677490234" lon="11.414644241333008">
+        <name>128912</name>
+      </trkpt>
+      <trkpt lat="48.156982421875" lon="11.41515827178955">
+        <name>128911</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85859</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128183&#xA;      &#xA;      &#xA;        128184&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20127868652344" lon="11.333345413208008">
+        <name>128183</name>
+      </trkpt>
+      <trkpt lat="48.20101547241211" lon="11.334437370300293">
+        <name>128184</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87943</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130161&#xA;      &#xA;      &#xA;        130162&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19242858886719" lon="11.256152153015137">
+        <name>130161</name>
+      </trkpt>
+      <trkpt lat="48.19112014770508" lon="11.25601863861084">
+        <name>130162</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90027</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132216&#xA;      &#xA;      &#xA;        132217&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.222251892089844" lon="11.354974746704102">
+        <name>132216</name>
+      </trkpt>
+      <trkpt lat="48.22220230102539" lon="11.354650497436523">
+        <name>132217</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86901</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129171&#xA;      &#xA;      &#xA;        129172&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.33273696899414" lon="11.682480812072754">
+        <name>129171</name>
+      </trkpt>
+      <trkpt lat="48.33277130126953" lon="11.687766075134277">
+        <name>129172</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87683</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129944&#xA;      &#xA;      &#xA;        129954&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.181480407714844" lon="11.43312931060791">
+        <name>129944</name>
+      </trkpt>
+      <trkpt lat="48.181819915771484" lon="11.433615684509277">
+        <name>129954</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86641</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128911&#xA;      &#xA;      &#xA;        128910&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.156982421875" lon="11.41515827178955">
+        <name>128911</name>
+      </trkpt>
+      <trkpt lat="48.1568717956543" lon="11.415644645690918">
+        <name>128910</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85860</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128184&#xA;      &#xA;      &#xA;        128185&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20101547241211" lon="11.334437370300293">
+        <name>128184</name>
+      </trkpt>
+      <trkpt lat="48.20057678222656" lon="11.335325241088867">
+        <name>128185</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87944</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130162&#xA;      &#xA;      &#xA;        130163&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19112014770508" lon="11.25601863861084">
+        <name>130162</name>
+      </trkpt>
+      <trkpt lat="48.1894416809082" lon="11.25571346282959">
+        <name>130163</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90028</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132217&#xA;      &#xA;      &#xA;        132218&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22220230102539" lon="11.354650497436523">
+        <name>132217</name>
+      </trkpt>
+      <trkpt lat="48.22201156616211" lon="11.354669570922852">
+        <name>132218</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86902</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129173&#xA;      &#xA;      &#xA;        129174&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.33296203613281" lon="11.687651634216309">
+        <name>129173</name>
+      </trkpt>
+      <trkpt lat="48.33294677734375" lon="11.68222427368164">
+        <name>129174</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105398</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146944&#xA;      &#xA;      &#xA;        146948&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.035037994384766" lon="11.605672836303711">
+        <name>146944</name>
+      </trkpt>
+      <trkpt lat="48.03465270996094" lon="11.605530738830566">
+        <name>146948</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87684</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129954&#xA;      &#xA;      &#xA;        129953&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.181819915771484" lon="11.433615684509277">
+        <name>129954</name>
+      </trkpt>
+      <trkpt lat="48.181785583496094" lon="11.434329986572266">
+        <name>129953</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86642</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128910&#xA;      &#xA;      &#xA;        128276&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1568717956543" lon="11.415644645690918">
+        <name>128910</name>
+      </trkpt>
+      <trkpt lat="48.15665054321289" lon="11.416059494018555">
+        <name>128276</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85861</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128185&#xA;      &#xA;      &#xA;        128186&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20057678222656" lon="11.335325241088867">
+        <name>128185</name>
+      </trkpt>
+      <trkpt lat="48.200096130371094" lon="11.336074829101562">
+        <name>128186</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87945</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130160&#xA;      &#xA;      &#xA;        130164&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.194393157958984" lon="11.256341934204102">
+        <name>130160</name>
+      </trkpt>
+      <trkpt lat="48.19438552856445" lon="11.255942344665527">
+        <name>130164</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90029</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132218&#xA;      &#xA;      &#xA;        132219&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22201156616211" lon="11.354669570922852">
+        <name>132218</name>
+      </trkpt>
+      <trkpt lat="48.221961975097656" lon="11.354917526245117">
+        <name>132219</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86903</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129174&#xA;      &#xA;      &#xA;        129168&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.33294677734375" lon="11.68222427368164">
+        <name>129174</name>
+      </trkpt>
+      <trkpt lat="48.33285140991211" lon="11.676796913146973">
+        <name>129168</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105138</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146679&#xA;      &#xA;      &#xA;        146687&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19567108154297" lon="11.682172775268555">
+        <name>146679</name>
+      </trkpt>
+      <trkpt lat="48.19449234008789" lon="11.686943054199219">
+        <name>146687</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87685</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129953&#xA;      &#xA;      &#xA;        129952&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.181785583496094" lon="11.434329986572266">
+        <name>129953</name>
+      </trkpt>
+      <trkpt lat="48.18134689331055" lon="11.434615135192871">
+        <name>129952</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86643</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128267&#xA;      &#xA;      &#xA;        128916&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16178512573242" lon="11.414077758789062">
+        <name>128267</name>
+      </trkpt>
+      <trkpt lat="48.1619873046875" lon="11.413928985595703">
+        <name>128916</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96542</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138196&#xA;      &#xA;      &#xA;        138219&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.3516960144043" lon="11.13475513458252">
+        <name>138196</name>
+      </trkpt>
+      <trkpt lat="48.353546142578125" lon="11.132997512817383">
+        <name>138219</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85862</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128186&#xA;      &#xA;      &#xA;        128187&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.200096130371094" lon="11.336074829101562">
+        <name>128186</name>
+      </trkpt>
+      <trkpt lat="48.1995735168457" lon="11.335199356079102">
+        <name>128187</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87946</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130164&#xA;      &#xA;      &#xA;        130165&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19438552856445" lon="11.255942344665527">
+        <name>130164</name>
+      </trkpt>
+      <trkpt lat="48.19426727294922" lon="11.255295753479004">
+        <name>130165</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90030</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132219&#xA;      &#xA;      &#xA;        132215&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.221961975097656" lon="11.354917526245117">
+        <name>132219</name>
+      </trkpt>
+      <trkpt lat="48.22206115722656" lon="11.35512638092041">
+        <name>132215</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86904</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129172&#xA;      &#xA;      &#xA;        129175&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.33277130126953" lon="11.687766075134277">
+        <name>129172</name>
+      </trkpt>
+      <trkpt lat="48.33290481567383" lon="11.691679000854492">
+        <name>129175</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105139</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146687&#xA;      &#xA;      &#xA;        146688&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19449234008789" lon="11.686943054199219">
+        <name>146687</name>
+      </trkpt>
+      <trkpt lat="48.19340515136719" lon="11.692255973815918">
+        <name>146688</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105400</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146948&#xA;      &#xA;      &#xA;        146952&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03465270996094" lon="11.605530738830566">
+        <name>146948</name>
+      </trkpt>
+      <trkpt lat="48.033870697021484" lon="11.606073379516602">
+        <name>146952</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87686</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129952&#xA;      &#xA;      &#xA;        129951&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18134689331055" lon="11.434615135192871">
+        <name>129952</name>
+      </trkpt>
+      <trkpt lat="48.18092727661133" lon="11.434215545654297">
+        <name>129951</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86644</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128916&#xA;      &#xA;      &#xA;        128917&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1619873046875" lon="11.413928985595703">
+        <name>128916</name>
+      </trkpt>
+      <trkpt lat="48.162132263183594" lon="11.41381549835205">
+        <name>128917</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96543</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138219&#xA;      &#xA;      &#xA;        138220&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.353546142578125" lon="11.132997512817383">
+        <name>138219</name>
+      </trkpt>
+      <trkpt lat="48.355567932128906" lon="11.131326675415039">
+        <name>138220</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85863</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128187&#xA;      &#xA;      &#xA;        128188&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1995735168457" lon="11.335199356079102">
+        <name>128187</name>
+      </trkpt>
+      <trkpt lat="48.198787689208984" lon="11.33371353149414">
+        <name>128188</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87947</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130165&#xA;      &#xA;      &#xA;        130166&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19426727294922" lon="11.255295753479004">
+        <name>130165</name>
+      </trkpt>
+      <trkpt lat="48.193572998046875" lon="11.253390312194824">
+        <name>130166</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90031</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132218&#xA;      &#xA;      &#xA;        132220&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22201156616211" lon="11.354669570922852">
+        <name>132218</name>
+      </trkpt>
+      <trkpt lat="48.22182083129883" lon="11.354326248168945">
+        <name>132220</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86905</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129175&#xA;      &#xA;      &#xA;        129176&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.33290481567383" lon="11.691679000854492">
+        <name>129175</name>
+      </trkpt>
+      <trkpt lat="48.333343505859375" lon="11.695992469787598">
+        <name>129176</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105140</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146688&#xA;      &#xA;      &#xA;        146691&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19340515136719" lon="11.692255973815918">
+        <name>146688</name>
+      </trkpt>
+      <trkpt lat="48.192588806152344" lon="11.696626663208008">
+        <name>146691</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87687</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129951&#xA;      &#xA;      &#xA;        129950&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18092727661133" lon="11.434215545654297">
+        <name>129951</name>
+      </trkpt>
+      <trkpt lat="48.18100357055664" lon="11.433415412902832">
+        <name>129950</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86645</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128917&#xA;      &#xA;      &#xA;        128265&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.162132263183594" lon="11.41381549835205">
+        <name>128917</name>
+      </trkpt>
+      <trkpt lat="48.16254806518555" lon="11.413848876953125">
+        <name>128265</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96544</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138220&#xA;      &#xA;      &#xA;        138221&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.355567932128906" lon="11.131326675415039">
+        <name>138220</name>
+      </trkpt>
+      <trkpt lat="48.358497619628906" lon="11.129013061523438">
+        <name>138221</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85864</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128188&#xA;      &#xA;      &#xA;        128189&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.198787689208984" lon="11.33371353149414">
+        <name>128188</name>
+      </trkpt>
+      <trkpt lat="48.1982421875" lon="11.332571029663086">
+        <name>128189</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87948</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130163&#xA;      &#xA;      &#xA;        130167&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1894416809082" lon="11.25571346282959">
+        <name>130163</name>
+      </trkpt>
+      <trkpt lat="48.18781661987305" lon="11.25537109375">
+        <name>130167</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90032</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132220&#xA;      &#xA;      &#xA;        132221&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22182083129883" lon="11.354326248168945">
+        <name>132220</name>
+      </trkpt>
+      <trkpt lat="48.22159194946289" lon="11.354117393493652">
+        <name>132221</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86906</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129176&#xA;      &#xA;      &#xA;        129177&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.333343505859375" lon="11.695992469787598">
+        <name>129176</name>
+      </trkpt>
+      <trkpt lat="48.33404541015625" lon="11.699763298034668">
+        <name>129177</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105141</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146691&#xA;      &#xA;      &#xA;        146694&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.192588806152344" lon="11.696626663208008">
+        <name>146691</name>
+      </trkpt>
+      <trkpt lat="48.1915397644043" lon="11.70136833190918">
+        <name>146694</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86646</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128267&#xA;      &#xA;      &#xA;        128918&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16178512573242" lon="11.414077758789062">
+        <name>128267</name>
+      </trkpt>
+      <trkpt lat="48.16201400756836" lon="11.414069175720215">
+        <name>128918</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96545</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138221&#xA;      &#xA;      &#xA;        138222&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.358497619628906" lon="11.129013061523438">
+        <name>138221</name>
+      </trkpt>
+      <trkpt lat="48.359439849853516" lon="11.12811279296875">
+        <name>138222</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85865</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128189&#xA;      &#xA;      &#xA;        128190&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1982421875" lon="11.332571029663086">
+        <name>128189</name>
+      </trkpt>
+      <trkpt lat="48.198123931884766" lon="11.332056045532227">
+        <name>128190</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87949</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130167&#xA;      &#xA;      &#xA;        130168&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18781661987305" lon="11.25537109375">
+        <name>130167</name>
+      </trkpt>
+      <trkpt lat="48.1865234375" lon="11.255066871643066">
+        <name>130168</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90033</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132221&#xA;      &#xA;      &#xA;        132222&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22159194946289" lon="11.354117393493652">
+        <name>132221</name>
+      </trkpt>
+      <trkpt lat="48.221187591552734" lon="11.353812217712402">
+        <name>132222</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86907</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129177&#xA;      &#xA;      &#xA;        129178&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.33404541015625" lon="11.699763298034668">
+        <name>129177</name>
+      </trkpt>
+      <trkpt lat="48.334861755371094" lon="11.70256233215332">
+        <name>129178</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105142</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146694&#xA;      &#xA;      &#xA;        146697&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1915397644043" lon="11.70136833190918">
+        <name>146694</name>
+      </trkpt>
+      <trkpt lat="48.19039535522461" lon="11.705796241760254">
+        <name>146697</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105403</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146952&#xA;      &#xA;      &#xA;        146957&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.033870697021484" lon="11.606073379516602">
+        <name>146952</name>
+      </trkpt>
+      <trkpt lat="48.03379440307617" lon="11.605844497680664">
+        <name>146957</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86647</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128918&#xA;      &#xA;      &#xA;        128916&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16201400756836" lon="11.414069175720215">
+        <name>128918</name>
+      </trkpt>
+      <trkpt lat="48.1619873046875" lon="11.413928985595703">
+        <name>128916</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96546</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138222&#xA;      &#xA;      &#xA;        138223&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.359439849853516" lon="11.12811279296875">
+        <name>138222</name>
+      </trkpt>
+      <trkpt lat="48.36180114746094" lon="11.125199317932129">
+        <name>138223</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85866</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128190&#xA;      &#xA;      &#xA;        128191&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.198123931884766" lon="11.332056045532227">
+        <name>128190</name>
+      </trkpt>
+      <trkpt lat="48.19816207885742" lon="11.331256866455078">
+        <name>128191</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87950</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130150&#xA;      &#xA;      &#xA;        130174&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18574142456055" lon="11.259047508239746">
+        <name>130150</name>
+      </trkpt>
+      <trkpt lat="48.18512725830078" lon="11.258247375488281">
+        <name>130174</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90034</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132222&#xA;      &#xA;      &#xA;        132223&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.221187591552734" lon="11.353812217712402">
+        <name>132222</name>
+      </trkpt>
+      <trkpt lat="48.220218658447266" lon="11.352365493774414">
+        <name>132223</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86908</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129179&#xA;      &#xA;      &#xA;        129180&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.334957122802734" lon="11.702305793762207">
+        <name>129179</name>
+      </trkpt>
+      <trkpt lat="48.33415985107422" lon="11.699419975280762">
+        <name>129180</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87690</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129948&#xA;      &#xA;      &#xA;        129947&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18239212036133" lon="11.431615829467773">
+        <name>129948</name>
+      </trkpt>
+      <trkpt lat="48.18279266357422" lon="11.431987762451172">
+        <name>129947</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86648</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128918&#xA;      &#xA;      &#xA;        128919&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16201400756836" lon="11.414069175720215">
+        <name>128918</name>
+      </trkpt>
+      <trkpt lat="48.162410736083984" lon="11.414386749267578">
+        <name>128919</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85867</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128191&#xA;      &#xA;      &#xA;        128192&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19816207885742" lon="11.331256866455078">
+        <name>128191</name>
+      </trkpt>
+      <trkpt lat="48.19854736328125" lon="11.330418586730957">
+        <name>128192</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87951</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130174&#xA;      &#xA;      &#xA;        130173&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18512725830078" lon="11.258247375488281">
+        <name>130174</name>
+      </trkpt>
+      <trkpt lat="48.18465805053711" lon="11.257332801818848">
+        <name>130173</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90035</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132223&#xA;      &#xA;      &#xA;        132224&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.220218658447266" lon="11.352365493774414">
+        <name>132223</name>
+      </trkpt>
+      <trkpt lat="48.21889114379883" lon="11.350327491760254">
+        <name>132224</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86909</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129180&#xA;      &#xA;      &#xA;        129181&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.33415985107422" lon="11.699419975280762">
+        <name>129180</name>
+      </trkpt>
+      <trkpt lat="48.33357238769531" lon="11.695849418640137">
+        <name>129181</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105405</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146957&#xA;      &#xA;      &#xA;        146963&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03379440307617" lon="11.605844497680664">
+        <name>146957</name>
+      </trkpt>
+      <trkpt lat="48.03348922729492" lon="11.60458755493164">
+        <name>146963</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87691</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129947&#xA;      &#xA;      &#xA;        129946&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18279266357422" lon="11.431987762451172">
+        <name>129947</name>
+      </trkpt>
+      <trkpt lat="48.18275451660156" lon="11.43270206451416">
+        <name>129946</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86649</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128919&#xA;      &#xA;      &#xA;        128920&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.162410736083984" lon="11.414386749267578">
+        <name>128919</name>
+      </trkpt>
+      <trkpt lat="48.163089752197266" lon="11.41486930847168">
+        <name>128920</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85868</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128192&#xA;      &#xA;      &#xA;        128193&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19854736328125" lon="11.330418586730957">
+        <name>128192</name>
+      </trkpt>
+      <trkpt lat="48.1988639831543" lon="11.329712867736816">
+        <name>128193</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87952</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130173&#xA;      &#xA;      &#xA;        130172&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18465805053711" lon="11.257332801818848">
+        <name>130173</name>
+      </trkpt>
+      <trkpt lat="48.18404769897461" lon="11.256094932556152">
+        <name>130172</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90036</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132224&#xA;      &#xA;      &#xA;        132225&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21889114379883" lon="11.350327491760254">
+        <name>132224</name>
+      </trkpt>
+      <trkpt lat="48.21759796142578" lon="11.348555564880371">
+        <name>132225</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86910</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129181&#xA;      &#xA;      &#xA;        129182&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.33357238769531" lon="11.695849418640137">
+        <name>129181</name>
+      </trkpt>
+      <trkpt lat="48.333133697509766" lon="11.691621780395508">
+        <name>129182</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105406</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146963&#xA;      &#xA;      &#xA;        146964&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03348922729492" lon="11.60458755493164">
+        <name>146963</name>
+      </trkpt>
+      <trkpt lat="48.033164978027344" lon="11.602959632873535">
+        <name>146964</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87692</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129946&#xA;      &#xA;      &#xA;        129945&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18275451660156" lon="11.43270206451416">
+        <name>129946</name>
+      </trkpt>
+      <trkpt lat="48.182373046875" lon="11.433072090148926">
+        <name>129945</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86650</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128920&#xA;      &#xA;      &#xA;        128921&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.163089752197266" lon="11.41486930847168">
+        <name>128920</name>
+      </trkpt>
+      <trkpt lat="48.16351318359375" lon="11.415148735046387">
+        <name>128921</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85869</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128193&#xA;      &#xA;      &#xA;        128194&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1988639831543" lon="11.329712867736816">
+        <name>128193</name>
+      </trkpt>
+      <trkpt lat="48.19894027709961" lon="11.329065322875977">
+        <name>128194</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87953</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130172&#xA;      &#xA;      &#xA;        130171&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18404769897461" lon="11.256094932556152">
+        <name>130172</name>
+      </trkpt>
+      <trkpt lat="48.18381881713867" lon="11.25567626953125">
+        <name>130171</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90037</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132225&#xA;      &#xA;      &#xA;        132226&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21759796142578" lon="11.348555564880371">
+        <name>132225</name>
+      </trkpt>
+      <trkpt lat="48.21681213378906" lon="11.3474702835083">
+        <name>132226</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86911</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129182&#xA;      &#xA;      &#xA;        129173&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.333133697509766" lon="11.691621780395508">
+        <name>129182</name>
+      </trkpt>
+      <trkpt lat="48.33296203613281" lon="11.687651634216309">
+        <name>129173</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87693</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129945&#xA;      &#xA;      &#xA;        129937&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.182373046875" lon="11.433072090148926">
+        <name>129945</name>
+      </trkpt>
+      <trkpt lat="48.181915283203125" lon="11.432844161987305">
+        <name>129937</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86651</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128921&#xA;      &#xA;      &#xA;        128922&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16351318359375" lon="11.415148735046387">
+        <name>128921</name>
+      </trkpt>
+      <trkpt lat="48.16387176513672" lon="11.415186882019043">
+        <name>128922</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85870</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128194&#xA;      &#xA;      &#xA;        128195&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19894027709961" lon="11.329065322875977">
+        <name>128194</name>
+      </trkpt>
+      <trkpt lat="48.198787689208984" lon="11.328208923339844">
+        <name>128195</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87954</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130171&#xA;      &#xA;      &#xA;        130170&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18381881713867" lon="11.25567626953125">
+        <name>130171</name>
+      </trkpt>
+      <trkpt lat="48.183677673339844" lon="11.255504608154297">
+        <name>130170</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90038</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132226&#xA;      &#xA;      &#xA;        132227&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21681213378906" lon="11.3474702835083">
+        <name>132226</name>
+      </trkpt>
+      <trkpt lat="48.21639633178711" lon="11.34703254699707">
+        <name>132227</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86912</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129178&#xA;      &#xA;      &#xA;        129183&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.334861755371094" lon="11.70256233215332">
+        <name>129178</name>
+      </trkpt>
+      <trkpt lat="48.33586883544922" lon="11.70524787902832">
+        <name>129183</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105408</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146964&#xA;      &#xA;      &#xA;        146965&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.033164978027344" lon="11.602959632873535">
+        <name>146964</name>
+      </trkpt>
+      <trkpt lat="48.03299331665039" lon="11.601244926452637">
+        <name>146965</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87694</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129824&#xA;      &#xA;      &#xA;        129955&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.169593811035156" lon="11.436208724975586">
+        <name>129824</name>
+      </trkpt>
+      <trkpt lat="48.169002532958984" lon="11.43704891204834">
+        <name>129955</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86652</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128922&#xA;      &#xA;      &#xA;        128923&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16387176513672" lon="11.415186882019043">
+        <name>128922</name>
+      </trkpt>
+      <trkpt lat="48.16447830200195" lon="11.414944648742676">
+        <name>128923</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85871</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128195&#xA;      &#xA;      &#xA;        128196&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.198787689208984" lon="11.328208923339844">
+        <name>128195</name>
+      </trkpt>
+      <trkpt lat="48.198394775390625" lon="11.326932907104492">
+        <name>128196</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87955</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130170&#xA;      &#xA;      &#xA;        130169&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.183677673339844" lon="11.255504608154297">
+        <name>130170</name>
+      </trkpt>
+      <trkpt lat="48.1837043762207" lon="11.25516128540039">
+        <name>130169</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90039</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132227&#xA;      &#xA;      &#xA;        132228&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21639633178711" lon="11.34703254699707">
+        <name>132227</name>
+      </trkpt>
+      <trkpt lat="48.215999603271484" lon="11.34659481048584">
+        <name>132228</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86913</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129183&#xA;      &#xA;      &#xA;        129184&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.33586883544922" lon="11.70524787902832">
+        <name>129183</name>
+      </trkpt>
+      <trkpt lat="48.337257385253906" lon="11.70801830291748">
+        <name>129184</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105409</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146957&#xA;      &#xA;      &#xA;        146961&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03379440307617" lon="11.605844497680664">
+        <name>146957</name>
+      </trkpt>
+      <trkpt lat="48.0345573425293" lon="11.605387687683105">
+        <name>146961</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87695</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129955&#xA;      &#xA;      &#xA;        129956&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.169002532958984" lon="11.43704891204834">
+        <name>129955</name>
+      </trkpt>
+      <trkpt lat="48.16832733154297" lon="11.437868118286133">
+        <name>129956</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86653</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128923&#xA;      &#xA;      &#xA;        128924&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16447830200195" lon="11.414944648742676">
+        <name>128923</name>
+      </trkpt>
+      <trkpt lat="48.16474533081055" lon="11.414895057678223">
+        <name>128924</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85090</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127441&#xA;      &#xA;      &#xA;        127442&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22355651855469" lon="11.335321426391602">
+        <name>127441</name>
+      </trkpt>
+      <trkpt lat="48.223758697509766" lon="11.336921691894531">
+        <name>127442</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85872</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128196&#xA;      &#xA;      &#xA;        128197&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.198394775390625" lon="11.326932907104492">
+        <name>128196</name>
+      </trkpt>
+      <trkpt lat="48.197784423828125" lon="11.325408935546875">
+        <name>128197</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87956</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130169&#xA;      &#xA;      &#xA;        130168&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1837043762207" lon="11.25516128540039">
+        <name>130169</name>
+      </trkpt>
+      <trkpt lat="48.1865234375" lon="11.255066871643066">
+        <name>130168</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90040</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132228&#xA;      &#xA;      &#xA;        132229&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.215999603271484" lon="11.34659481048584">
+        <name>132228</name>
+      </trkpt>
+      <trkpt lat="48.21564483642578" lon="11.345985412597656">
+        <name>132229</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86914</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129184&#xA;      &#xA;      &#xA;        129185&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.337257385253906" lon="11.70801830291748">
+        <name>129184</name>
+      </trkpt>
+      <trkpt lat="48.33890914916992" lon="11.71056079864502">
+        <name>129185</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87696</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129956&#xA;      &#xA;      &#xA;        129957&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16832733154297" lon="11.437868118286133">
+        <name>129956</name>
+      </trkpt>
+      <trkpt lat="48.168113708496094" lon="11.438267707824707">
+        <name>129957</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86654</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128924&#xA;      &#xA;      &#xA;        128925&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16474533081055" lon="11.414895057678223">
+        <name>128924</name>
+      </trkpt>
+      <trkpt lat="48.16510772705078" lon="11.414983749389648">
+        <name>128925</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85091</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127442&#xA;      &#xA;      &#xA;        127443&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.223758697509766" lon="11.336921691894531">
+        <name>127442</name>
+      </trkpt>
+      <trkpt lat="48.22374725341797" lon="11.337759017944336">
+        <name>127443</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85873</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128197&#xA;      &#xA;      &#xA;        128198&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.197784423828125" lon="11.325408935546875">
+        <name>128197</name>
+      </trkpt>
+      <trkpt lat="48.19750213623047" lon="11.324666023254395">
+        <name>128198</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87957</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130166&#xA;      &#xA;      &#xA;        130175&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.193572998046875" lon="11.253390312194824">
+        <name>130166</name>
+      </trkpt>
+      <trkpt lat="48.1932258605957" lon="11.25243854522705">
+        <name>130175</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90041</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132229&#xA;      &#xA;      &#xA;        132230&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21564483642578" lon="11.345985412597656">
+        <name>132229</name>
+      </trkpt>
+      <trkpt lat="48.21474075317383" lon="11.343413352966309">
+        <name>132230</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86915</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129185&#xA;      &#xA;      &#xA;        129186&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.33890914916992" lon="11.71056079864502">
+        <name>129185</name>
+      </trkpt>
+      <trkpt lat="48.340938568115234" lon="11.712960243225098">
+        <name>129186</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105411</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146961&#xA;      &#xA;      &#xA;        146962&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.0345573425293" lon="11.605387687683105">
+        <name>146961</name>
+      </trkpt>
+      <trkpt lat="48.03549575805664" lon="11.605101585388184">
+        <name>146962</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87697</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129957&#xA;      &#xA;      &#xA;        129958&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.168113708496094" lon="11.438267707824707">
+        <name>129957</name>
+      </trkpt>
+      <trkpt lat="48.167694091796875" lon="11.439696311950684">
+        <name>129958</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86655</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128925&#xA;      &#xA;      &#xA;        128926&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16510772705078" lon="11.414983749389648">
+        <name>128925</name>
+      </trkpt>
+      <trkpt lat="48.16567611694336" lon="11.415567398071289">
+        <name>128926</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85874</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128198&#xA;      &#xA;      &#xA;        128199&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19750213623047" lon="11.324666023254395">
+        <name>128198</name>
+      </trkpt>
+      <trkpt lat="48.197898864746094" lon="11.324438095092773">
+        <name>128199</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87958</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130175&#xA;      &#xA;      &#xA;        130176&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1932258605957" lon="11.25243854522705">
+        <name>130175</name>
+      </trkpt>
+      <trkpt lat="48.19313430786133" lon="11.251923561096191">
+        <name>130176</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90042</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132230&#xA;      &#xA;      &#xA;        132231&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21474075317383" lon="11.343413352966309">
+        <name>132230</name>
+      </trkpt>
+      <trkpt lat="48.214290618896484" lon="11.342212677001953">
+        <name>132231</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86916</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129187&#xA;      &#xA;      &#xA;        129188&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.34110641479492" lon="11.712817192077637">
+        <name>129187</name>
+      </trkpt>
+      <trkpt lat="48.33900451660156" lon="11.710304260253906">
+        <name>129188</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87698</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129958&#xA;      &#xA;      &#xA;        129959&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.167694091796875" lon="11.439696311950684">
+        <name>129958</name>
+      </trkpt>
+      <trkpt lat="48.167537689208984" lon="11.440686225891113">
+        <name>129959</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86656</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128926&#xA;      &#xA;      &#xA;        128927&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16567611694336" lon="11.415567398071289">
+        <name>128926</name>
+      </trkpt>
+      <trkpt lat="48.16618728637695" lon="11.415833473205566">
+        <name>128927</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85875</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128199&#xA;      &#xA;      &#xA;        128200&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.197898864746094" lon="11.324438095092773">
+        <name>128199</name>
+      </trkpt>
+      <trkpt lat="48.198585510253906" lon="11.324191093444824">
+        <name>128200</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87959</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130176&#xA;      &#xA;      &#xA;        130177&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19313430786133" lon="11.251923561096191">
+        <name>130176</name>
+      </trkpt>
+      <trkpt lat="48.193111419677734" lon="11.25129508972168">
+        <name>130177</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90043</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132231&#xA;      &#xA;      &#xA;        132232&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.214290618896484" lon="11.342212677001953">
+        <name>132231</name>
+      </trkpt>
+      <trkpt lat="48.213443756103516" lon="11.339832305908203">
+        <name>132232</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86917</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129188&#xA;      &#xA;      &#xA;        129189&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.33900451660156" lon="11.710304260253906">
+        <name>129188</name>
+      </trkpt>
+      <trkpt lat="48.337276458740234" lon="11.707618713378906">
+        <name>129189</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87699</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129959&#xA;      &#xA;      &#xA;        129960&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.167537689208984" lon="11.440686225891113">
+        <name>129959</name>
+      </trkpt>
+      <trkpt lat="48.167388916015625" lon="11.441143035888672">
+        <name>129960</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86657</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128927&#xA;      &#xA;      &#xA;        128928&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16618728637695" lon="11.415833473205566">
+        <name>128927</name>
+      </trkpt>
+      <trkpt lat="48.16657638549805" lon="11.41580867767334">
+        <name>128928</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85876</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128200&#xA;      &#xA;      &#xA;        128201&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.198585510253906" lon="11.324191093444824">
+        <name>128200</name>
+      </trkpt>
+      <trkpt lat="48.19974136352539" lon="11.323980331420898">
+        <name>128201</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87960</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130177&#xA;      &#xA;      &#xA;        128335&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.193111419677734" lon="11.25129508972168">
+        <name>130177</name>
+      </trkpt>
+      <trkpt lat="48.19309616088867" lon="11.249394416809082">
+        <name>128335</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90044</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132232&#xA;      &#xA;      &#xA;        132233&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.213443756103516" lon="11.339832305908203">
+        <name>132232</name>
+      </trkpt>
+      <trkpt lat="48.212188720703125" lon="11.336804389953613">
+        <name>132233</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86918</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129189&#xA;      &#xA;      &#xA;        129190&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.337276458740234" lon="11.707618713378906">
+        <name>129189</name>
+      </trkpt>
+      <trkpt lat="48.336002349853516" lon="11.705047607421875">
+        <name>129190</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105153</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146697&#xA;      &#xA;      &#xA;        146704&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19039535522461" lon="11.705796241760254">
+        <name>146697</name>
+      </trkpt>
+      <trkpt lat="48.18891525268555" lon="11.710309982299805">
+        <name>146704</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105414</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146942&#xA;      &#xA;      &#xA;        146969&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03491973876953" lon="11.606958389282227">
+        <name>146942</name>
+      </trkpt>
+      <trkpt lat="48.03570556640625" lon="11.60558795928955">
+        <name>146969</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87700</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129960&#xA;      &#xA;      &#xA;        129961&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.167388916015625" lon="11.441143035888672">
+        <name>129960</name>
+      </trkpt>
+      <trkpt lat="48.16704559326172" lon="11.441410064697266">
+        <name>129961</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86658</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128928&#xA;      &#xA;      &#xA;        128929&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16657638549805" lon="11.41580867767334">
+        <name>128928</name>
+      </trkpt>
+      <trkpt lat="48.16694259643555" lon="11.415630340576172">
+        <name>128929</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96557</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138223&#xA;      &#xA;      &#xA;        138239&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.36180114746094" lon="11.125199317932129">
+        <name>138223</name>
+      </trkpt>
+      <trkpt lat="48.363826751708984" lon="11.121858596801758">
+        <name>138239</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85877</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128201&#xA;      &#xA;      &#xA;        128202&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19974136352539" lon="11.323980331420898">
+        <name>128201</name>
+      </trkpt>
+      <trkpt lat="48.200462341308594" lon="11.323943138122559">
+        <name>128202</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87961</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128337&#xA;      &#xA;      &#xA;        130178&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19402313232422" lon="11.249375343322754">
+        <name>128337</name>
+      </trkpt>
+      <trkpt lat="48.19490051269531" lon="11.249314308166504">
+        <name>130178</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90045</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132233&#xA;      &#xA;      &#xA;        132234&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.212188720703125" lon="11.336804389953613">
+        <name>132233</name>
+      </trkpt>
+      <trkpt lat="48.21128845214844" lon="11.33463191986084">
+        <name>132234</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86919</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129190&#xA;      &#xA;      &#xA;        129179&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.336002349853516" lon="11.705047607421875">
+        <name>129190</name>
+      </trkpt>
+      <trkpt lat="48.334957122802734" lon="11.702305793762207">
+        <name>129179</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87701</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129961&#xA;      &#xA;      &#xA;        129962&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16704559326172" lon="11.441410064697266">
+        <name>129961</name>
+      </trkpt>
+      <trkpt lat="48.166259765625" lon="11.441752433776855">
+        <name>129962</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86659</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128929&#xA;      &#xA;      &#xA;        128930&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16694259643555" lon="11.415630340576172">
+        <name>128929</name>
+      </trkpt>
+      <trkpt lat="48.16719436645508" lon="11.41550350189209">
+        <name>128930</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85878</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128202&#xA;      &#xA;      &#xA;        128203&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.200462341308594" lon="11.323943138122559">
+        <name>128202</name>
+      </trkpt>
+      <trkpt lat="48.20153045654297" lon="11.324000358581543">
+        <name>128203</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87962</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130178&#xA;      &#xA;      &#xA;        130179&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19490051269531" lon="11.249314308166504">
+        <name>130178</name>
+      </trkpt>
+      <trkpt lat="48.19618225097656" lon="11.249199867248535">
+        <name>130179</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90046</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132234&#xA;      &#xA;      &#xA;        132235&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21128845214844" lon="11.33463191986084">
+        <name>132234</name>
+      </trkpt>
+      <trkpt lat="48.210693359375" lon="11.333736419677734">
+        <name>132235</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86920</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129186&#xA;      &#xA;      &#xA;        129191&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.340938568115234" lon="11.712960243225098">
+        <name>129186</name>
+      </trkpt>
+      <trkpt lat="48.34357833862305" lon="11.71581745147705">
+        <name>129191</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105155</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146704&#xA;      &#xA;      &#xA;        146705&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18891525268555" lon="11.710309982299805">
+        <name>146704</name>
+      </trkpt>
+      <trkpt lat="48.18745040893555" lon="11.714194297790527">
+        <name>146705</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87702</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129962&#xA;      &#xA;      &#xA;        129963&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.166259765625" lon="11.441752433776855">
+        <name>129962</name>
+      </trkpt>
+      <trkpt lat="48.16554641723633" lon="11.442113876342773">
+        <name>129963</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86660</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128930&#xA;      &#xA;      &#xA;        128931&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16719436645508" lon="11.41550350189209">
+        <name>128930</name>
+      </trkpt>
+      <trkpt lat="48.16734313964844" lon="11.415529251098633">
+        <name>128931</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85097</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127443&#xA;      &#xA;      &#xA;        127447&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22374725341797" lon="11.337759017944336">
+        <name>127443</name>
+      </trkpt>
+      <trkpt lat="48.22380447387695" lon="11.338057518005371">
+        <name>127447</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85879</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128203&#xA;      &#xA;      &#xA;        128168&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20153045654297" lon="11.324000358581543">
+        <name>128203</name>
+      </trkpt>
+      <trkpt lat="48.2030029296875" lon="11.324077606201172">
+        <name>128168</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87963</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130179&#xA;      &#xA;      &#xA;        130180&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19618225097656" lon="11.249199867248535">
+        <name>130179</name>
+      </trkpt>
+      <trkpt lat="48.19613265991211" lon="11.251256942749023">
+        <name>130180</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90047</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132235&#xA;      &#xA;      &#xA;        132236&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.210693359375" lon="11.333736419677734">
+        <name>132235</name>
+      </trkpt>
+      <trkpt lat="48.2100830078125" lon="11.332765579223633">
+        <name>132236</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86921</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129191&#xA;      &#xA;      &#xA;        129192&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.34357833862305" lon="11.71581745147705">
+        <name>129191</name>
+      </trkpt>
+      <trkpt lat="48.34551239013672" lon="11.718416213989258">
+        <name>129192</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87703</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129963&#xA;      &#xA;      &#xA;        129964&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16554641723633" lon="11.442113876342773">
+        <name>129963</name>
+      </trkpt>
+      <trkpt lat="48.16469955444336" lon="11.442723274230957">
+        <name>129964</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86661</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128931&#xA;      &#xA;      &#xA;        128932&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16734313964844" lon="11.415529251098633">
+        <name>128931</name>
+      </trkpt>
+      <trkpt lat="48.16770553588867" lon="11.416025161743164">
+        <name>128932</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85098</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127443&#xA;      &#xA;      &#xA;        127448&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.22374725341797" lon="11.337759017944336">
+        <name>127443</name>
+      </trkpt>
+      <trkpt lat="48.223575592041016" lon="11.337943077087402">
+        <name>127448</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85880</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128186&#xA;      &#xA;      &#xA;        128204&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.200096130371094" lon="11.336074829101562">
+        <name>128186</name>
+      </trkpt>
+      <trkpt lat="48.1994514465332" lon="11.337180137634277">
+        <name>128204</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87964</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130180&#xA;      &#xA;      &#xA;        130181&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19613265991211" lon="11.251256942749023">
+        <name>130180</name>
+      </trkpt>
+      <trkpt lat="48.19563674926758" lon="11.251428604125977">
+        <name>130181</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90048</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132236&#xA;      &#xA;      &#xA;        132237&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2100830078125" lon="11.332765579223633">
+        <name>132236</name>
+      </trkpt>
+      <trkpt lat="48.208839416503906" lon="11.330536842346191">
+        <name>132237</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86922</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129192&#xA;      &#xA;      &#xA;        129193&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.34551239013672" lon="11.718416213989258">
+        <name>129192</name>
+      </trkpt>
+      <trkpt lat="48.347320556640625" lon="11.721844673156738">
+        <name>129193</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105157</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146705&#xA;      &#xA;      &#xA;        146706&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18745040893555" lon="11.714194297790527">
+        <name>146705</name>
+      </trkpt>
+      <trkpt lat="48.18577575683594" lon="11.717822074890137">
+        <name>146706</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105418</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146965&#xA;      &#xA;      &#xA;        146975&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03299331665039" lon="11.601244926452637">
+        <name>146965</name>
+      </trkpt>
+      <trkpt lat="48.03310775756836" lon="11.598875045776367">
+        <name>146975</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87704</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129964&#xA;      &#xA;      &#xA;        129965&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16469955444336" lon="11.442723274230957">
+        <name>129964</name>
+      </trkpt>
+      <trkpt lat="48.163856506347656" lon="11.443180084228516">
+        <name>129965</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86662</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128932&#xA;      &#xA;      &#xA;        128933&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16770553588867" lon="11.416025161743164">
+        <name>128932</name>
+      </trkpt>
+      <trkpt lat="48.16789245605469" lon="11.416291236877441">
+        <name>128933</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96561</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138239&#xA;      &#xA;      &#xA;        138240&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.363826751708984" lon="11.121858596801758">
+        <name>138239</name>
+      </trkpt>
+      <trkpt lat="48.365360260009766" lon="11.118515968322754">
+        <name>138240</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85099</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127448&#xA;      &#xA;      &#xA;        127447&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.223575592041016" lon="11.337943077087402">
+        <name>127448</name>
+      </trkpt>
+      <trkpt lat="48.22380447387695" lon="11.338057518005371">
+        <name>127447</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85881</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128204&#xA;      &#xA;      &#xA;        128205&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1994514465332" lon="11.337180137634277">
+        <name>128204</name>
+      </trkpt>
+      <trkpt lat="48.1988525390625" lon="11.33858871459961">
+        <name>128205</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87965</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130181&#xA;      &#xA;      &#xA;        130182&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19563674926758" lon="11.251428604125977">
+        <name>130181</name>
+      </trkpt>
+      <trkpt lat="48.193973541259766" lon="11.251352310180664">
+        <name>130182</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96301</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130105&#xA;      &#xA;      &#xA;        137994&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2337760925293" lon="11.348164558410645">
+        <name>130105</name>
+      </trkpt>
+      <trkpt lat="48.23537826538086" lon="11.345257759094238">
+        <name>137994</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90049</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132237&#xA;      &#xA;      &#xA;        132238&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.208839416503906" lon="11.330536842346191">
+        <name>132237</name>
+      </trkpt>
+      <trkpt lat="48.20827102661133" lon="11.329584121704102">
+        <name>132238</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86923</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129194&#xA;      &#xA;      &#xA;        129195&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.34750747680664" lon="11.721731185913086">
+        <name>129194</name>
+      </trkpt>
+      <trkpt lat="48.345645904541016" lon="11.718188285827637">
+        <name>129195</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105158</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146706&#xA;      &#xA;      &#xA;        146707&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18577575683594" lon="11.717822074890137">
+        <name>146706</name>
+      </trkpt>
+      <trkpt lat="48.18379211425781" lon="11.72150707244873">
+        <name>146707</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87705</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129965&#xA;      &#xA;      &#xA;        129966&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.163856506347656" lon="11.443180084228516">
+        <name>129965</name>
+      </trkpt>
+      <trkpt lat="48.16322326660156" lon="11.44354248046875">
+        <name>129966</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86663</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128933&#xA;      &#xA;      &#xA;        128934&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16789245605469" lon="11.416291236877441">
+        <name>128933</name>
+      </trkpt>
+      <trkpt lat="48.16802978515625" lon="11.416316986083984">
+        <name>128934</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96562</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138240&#xA;      &#xA;      &#xA;        138241&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.365360260009766" lon="11.118515968322754">
+        <name>138240</name>
+      </trkpt>
+      <trkpt lat="48.3663330078125" lon="11.115601539611816">
+        <name>138241</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85100</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127448&#xA;      &#xA;      &#xA;        127451&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.223575592041016" lon="11.337943077087402">
+        <name>127448</name>
+      </trkpt>
+      <trkpt lat="48.223243713378906" lon="11.337599754333496">
+        <name>127451</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85882</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128205&#xA;      &#xA;      &#xA;        128206&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1988525390625" lon="11.33858871459961">
+        <name>128205</name>
+      </trkpt>
+      <trkpt lat="48.198699951171875" lon="11.339750289916992">
+        <name>128206</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87966</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130182&#xA;      &#xA;      &#xA;        130177&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.193973541259766" lon="11.251352310180664">
+        <name>130182</name>
+      </trkpt>
+      <trkpt lat="48.193111419677734" lon="11.25129508972168">
+        <name>130177</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90050</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132238&#xA;      &#xA;      &#xA;        132239&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20827102661133" lon="11.329584121704102">
+        <name>132238</name>
+      </trkpt>
+      <trkpt lat="48.20790481567383" lon="11.328593254089355">
+        <name>132239</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86924</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129195&#xA;      &#xA;      &#xA;        129196&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.345645904541016" lon="11.718188285827637">
+        <name>129195</name>
+      </trkpt>
+      <trkpt lat="48.343650817871094" lon="11.715560913085938">
+        <name>129196</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105420</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146975&#xA;      &#xA;      &#xA;        146976&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03310775756836" lon="11.598875045776367">
+        <name>146975</name>
+      </trkpt>
+      <trkpt lat="48.03362274169922" lon="11.596617698669434">
+        <name>146976</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87706</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129966&#xA;      &#xA;      &#xA;        129967&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16322326660156" lon="11.44354248046875">
+        <name>129966</name>
+      </trkpt>
+      <trkpt lat="48.16211700439453" lon="11.444266319274902">
+        <name>129967</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86664</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128934&#xA;      &#xA;      &#xA;        128935&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16802978515625" lon="11.416316986083984">
+        <name>128934</name>
+      </trkpt>
+      <trkpt lat="48.16826629638672" lon="11.41601276397705">
+        <name>128935</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85883</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128206&#xA;      &#xA;      &#xA;        128207&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.198699951171875" lon="11.339750289916992">
+        <name>128206</name>
+      </trkpt>
+      <trkpt lat="48.19883728027344" lon="11.340951919555664">
+        <name>128207</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96303</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        137994&#xA;      &#xA;      &#xA;        138002&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23537826538086" lon="11.345257759094238">
+        <name>137994</name>
+      </trkpt>
+      <trkpt lat="48.2379150390625" lon="11.340600967407227">
+        <name>138002</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90051</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132239&#xA;      &#xA;      &#xA;        132240&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20790481567383" lon="11.328593254089355">
+        <name>132239</name>
+      </trkpt>
+      <trkpt lat="48.20862579345703" lon="11.328327178955078">
+        <name>132240</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86925</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129196&#xA;      &#xA;      &#xA;        129187&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.343650817871094" lon="11.715560913085938">
+        <name>129196</name>
+      </trkpt>
+      <trkpt lat="48.34110641479492" lon="11.712817192077637">
+        <name>129187</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105160</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146707&#xA;      &#xA;      &#xA;        146710&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18379211425781" lon="11.72150707244873">
+        <name>146707</name>
+      </trkpt>
+      <trkpt lat="48.18158721923828" lon="11.725021362304688">
+        <name>146710</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105421</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146976&#xA;      &#xA;      &#xA;        146977&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03362274169922" lon="11.596617698669434">
+        <name>146976</name>
+      </trkpt>
+      <trkpt lat="48.03430938720703" lon="11.594161987304688">
+        <name>146977</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87707</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129967&#xA;      &#xA;      &#xA;        129968&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16211700439453" lon="11.444266319274902">
+        <name>129967</name>
+      </trkpt>
+      <trkpt lat="48.161888122558594" lon="11.443370819091797">
+        <name>129968</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86665</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128935&#xA;      &#xA;      &#xA;        128936&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16826629638672" lon="11.41601276397705">
+        <name>128935</name>
+      </trkpt>
+      <trkpt lat="48.16837692260742" lon="11.415733337402344">
+        <name>128936</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85884</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128207&#xA;      &#xA;      &#xA;        128208&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19883728027344" lon="11.340951919555664">
+        <name>128207</name>
+      </trkpt>
+      <trkpt lat="48.199119567871094" lon="11.342361450195312">
+        <name>128208</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90052</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132240&#xA;      &#xA;      &#xA;        132241&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20862579345703" lon="11.328327178955078">
+        <name>132240</name>
+      </trkpt>
+      <trkpt lat="48.208919525146484" lon="11.328898429870605">
+        <name>132241</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86926</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129193&#xA;      &#xA;      &#xA;        129197&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.347320556640625" lon="11.721844673156738">
+        <name>129193</name>
+      </trkpt>
+      <trkpt lat="48.348876953125" lon="11.725072860717773">
+        <name>129197</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87708</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129968&#xA;      &#xA;      &#xA;        129971&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.161888122558594" lon="11.443370819091797">
+        <name>129968</name>
+      </trkpt>
+      <trkpt lat="48.16154479980469" lon="11.442514419555664">
+        <name>129971</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86666</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128936&#xA;      &#xA;      &#xA;        128937&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16837692260742" lon="11.415733337402344">
+        <name>128936</name>
+      </trkpt>
+      <trkpt lat="48.16828918457031" lon="11.415287971496582">
+        <name>128937</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96565</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138241&#xA;      &#xA;      &#xA;        138242&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.3663330078125" lon="11.115601539611816">
+        <name>138241</name>
+      </trkpt>
+      <trkpt lat="48.367069244384766" lon="11.112517356872559">
+        <name>138242</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85885</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128208&#xA;      &#xA;      &#xA;        128209&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.199119567871094" lon="11.342361450195312">
+        <name>128208</name>
+      </trkpt>
+      <trkpt lat="48.199119567871094" lon="11.34367561340332">
+        <name>128209</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96305</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138002&#xA;      &#xA;      &#xA;        138006&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2379150390625" lon="11.340600967407227">
+        <name>138002</name>
+      </trkpt>
+      <trkpt lat="48.239967346191406" lon="11.336487770080566">
+        <name>138006</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90053</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132241&#xA;      &#xA;      &#xA;        132242&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.208919525146484" lon="11.328898429870605">
+        <name>132241</name>
+      </trkpt>
+      <trkpt lat="48.20918655395508" lon="11.32899284362793">
+        <name>132242</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86927</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129197&#xA;      &#xA;      &#xA;        129198&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.348876953125" lon="11.725072860717773">
+        <name>129197</name>
+      </trkpt>
+      <trkpt lat="48.35033416748047" lon="11.727243423461914">
+        <name>129198</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87709</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129971&#xA;      &#xA;      &#xA;        129972&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16154479980469" lon="11.442514419555664">
+        <name>129971</name>
+      </trkpt>
+      <trkpt lat="48.162025451660156" lon="11.442075729370117">
+        <name>129972</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86667</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128937&#xA;      &#xA;      &#xA;        128938&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16828918457031" lon="11.415287971496582">
+        <name>128937</name>
+      </trkpt>
+      <trkpt lat="48.16832733154297" lon="11.415098190307617">
+        <name>128938</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85886</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128209&#xA;      &#xA;      &#xA;        128210&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.199119567871094" lon="11.34367561340332">
+        <name>128209</name>
+      </trkpt>
+      <trkpt lat="48.19881057739258" lon="11.344990730285645">
+        <name>128210</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90054</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132242&#xA;      &#xA;      &#xA;        132243&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20918655395508" lon="11.32899284362793">
+        <name>132242</name>
+      </trkpt>
+      <trkpt lat="48.20968246459961" lon="11.329107284545898">
+        <name>132243</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86928</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129198&#xA;      &#xA;      &#xA;        129199&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.35033416748047" lon="11.727243423461914">
+        <name>129198</name>
+      </trkpt>
+      <trkpt lat="48.352806091308594" lon="11.729585647583008">
+        <name>129199</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87710</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129972&#xA;      &#xA;      &#xA;        129973&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.162025451660156" lon="11.442075729370117">
+        <name>129972</name>
+      </trkpt>
+      <trkpt lat="48.16244888305664" lon="11.441847801208496">
+        <name>129973</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86668</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128938&#xA;      &#xA;      &#xA;        128939&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16832733154297" lon="11.415098190307617">
+        <name>128938</name>
+      </trkpt>
+      <trkpt lat="48.16895294189453" lon="11.414844512939453">
+        <name>128939</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85887</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128210&#xA;      &#xA;      &#xA;        128211&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19881057739258" lon="11.344990730285645">
+        <name>128210</name>
+      </trkpt>
+      <trkpt lat="48.197872161865234" lon="11.346990585327148">
+        <name>128211</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90055</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132243&#xA;      &#xA;      &#xA;        132244&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20968246459961" lon="11.329107284545898">
+        <name>132243</name>
+      </trkpt>
+      <trkpt lat="48.209983825683594" lon="11.329641342163086">
+        <name>132244</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86929</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129200&#xA;      &#xA;      &#xA;        129201&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.352783203125" lon="11.72921371459961">
+        <name>129200</name>
+      </trkpt>
+      <trkpt lat="48.35029983520508" lon="11.726785659790039">
+        <name>129201</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87711</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129973&#xA;      &#xA;      &#xA;        129970&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16244888305664" lon="11.441847801208496">
+        <name>129973</name>
+      </trkpt>
+      <trkpt lat="48.16300582885742" lon="11.4417142868042">
+        <name>129970</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86669</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128939&#xA;      &#xA;      &#xA;        128940&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16895294189453" lon="11.414844512939453">
+        <name>128939</name>
+      </trkpt>
+      <trkpt lat="48.16910171508789" lon="11.414806365966797">
+        <name>128940</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96568</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138242&#xA;      &#xA;      &#xA;        138243&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.367069244384766" lon="11.112517356872559">
+        <name>138242</name>
+      </trkpt>
+      <trkpt lat="48.36792755126953" lon="11.109174728393555">
+        <name>138243</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85888</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128211&#xA;      &#xA;      &#xA;        128212&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.197872161865234" lon="11.346990585327148">
+        <name>128211</name>
+      </trkpt>
+      <trkpt lat="48.197479248046875" lon="11.348742485046387">
+        <name>128212</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90056</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132244&#xA;      &#xA;      &#xA;        132246&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.209983825683594" lon="11.329641342163086">
+        <name>132244</name>
+      </trkpt>
+      <trkpt lat="48.21037673950195" lon="11.330535888671875">
+        <name>132246</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86930</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129201&#xA;      &#xA;      &#xA;        129202&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.35029983520508" lon="11.726785659790039">
+        <name>129201</name>
+      </trkpt>
+      <trkpt lat="48.34891128540039" lon="11.724672317504883">
+        <name>129202</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87712</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129970&#xA;      &#xA;      &#xA;        129969&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16300582885742" lon="11.4417142868042">
+        <name>129970</name>
+      </trkpt>
+      <trkpt lat="48.16310501098633" lon="11.4426851272583">
+        <name>129969</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86670</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128940&#xA;      &#xA;      &#xA;        128941&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16910171508789" lon="11.414806365966797">
+        <name>128940</name>
+      </trkpt>
+      <trkpt lat="48.17017364501953" lon="11.415186882019043">
+        <name>128941</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85107</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        127451&#xA;      &#xA;      &#xA;        127458&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.223243713378906" lon="11.337599754333496">
+        <name>127451</name>
+      </trkpt>
+      <trkpt lat="48.22129440307617" lon="11.3343505859375">
+        <name>127458</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85889</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128212&#xA;      &#xA;      &#xA;        128213&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.197479248046875" lon="11.348742485046387">
+        <name>128212</name>
+      </trkpt>
+      <trkpt lat="48.19769287109375" lon="11.35159969329834">
+        <name>128213</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96309</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138006&#xA;      &#xA;      &#xA;        138009&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.239967346191406" lon="11.336487770080566">
+        <name>138006</name>
+      </trkpt>
+      <trkpt lat="48.242061614990234" lon="11.332230567932129">
+        <name>138009</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90057</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128176&#xA;      &#xA;      &#xA;        132255&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.205440521240234" lon="11.325904846191406">
+        <name>128176</name>
+      </trkpt>
+      <trkpt lat="48.2056770324707" lon="11.326091766357422">
+        <name>132255</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86931</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129202&#xA;      &#xA;      &#xA;        129194&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.34891128540039" lon="11.724672317504883">
+        <name>129202</name>
+      </trkpt>
+      <trkpt lat="48.34750747680664" lon="11.721731185913086">
+        <name>129194</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96830</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132329&#xA;      &#xA;      &#xA;        138494&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24520492553711" lon="11.474727630615234">
+        <name>132329</name>
+      </trkpt>
+      <trkpt lat="48.24631118774414" lon="11.475956916809082">
+        <name>138494</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87713</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129969&#xA;      &#xA;      &#xA;        129966&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16310501098633" lon="11.4426851272583">
+        <name>129969</name>
+      </trkpt>
+      <trkpt lat="48.16322326660156" lon="11.44354248046875">
+        <name>129966</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86671</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128941&#xA;      &#xA;      &#xA;        128942&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17017364501953" lon="11.415186882019043">
+        <name>128941</name>
+      </trkpt>
+      <trkpt lat="48.171024322509766" lon="11.41575813293457">
+        <name>128942</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96570</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138243&#xA;      &#xA;      &#xA;        138244&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.36792755126953" lon="11.109174728393555">
+        <name>138243</name>
+      </trkpt>
+      <trkpt lat="48.36863708496094" lon="11.106646537780762">
+        <name>138244</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90058</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132255&#xA;      &#xA;      &#xA;        132254&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2056770324707" lon="11.326091766357422">
+        <name>132255</name>
+      </trkpt>
+      <trkpt lat="48.20643615722656" lon="11.326740264892578">
+        <name>132254</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86932</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129199&#xA;      &#xA;      &#xA;        129203&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.352806091308594" lon="11.729585647583008">
+        <name>129199</name>
+      </trkpt>
+      <trkpt lat="48.3552131652832" lon="11.731014251708984">
+        <name>129203</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105167</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146710&#xA;      &#xA;      &#xA;        146716&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18158721923828" lon="11.725021362304688">
+        <name>146710</name>
+      </trkpt>
+      <trkpt lat="48.179595947265625" lon="11.727705955505371">
+        <name>146716</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85890</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128213&#xA;      &#xA;      &#xA;        128214&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19769287109375" lon="11.35159969329834">
+        <name>128213</name>
+      </trkpt>
+      <trkpt lat="48.197669982910156" lon="11.353066444396973">
+        <name>128214</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87714</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129969&#xA;      &#xA;      &#xA;        129974&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16310501098633" lon="11.4426851272583">
+        <name>129969</name>
+      </trkpt>
+      <trkpt lat="48.162471771240234" lon="11.442952156066895">
+        <name>129974</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86672</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128942&#xA;      &#xA;      &#xA;        128943&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.171024322509766" lon="11.41575813293457">
+        <name>128942</name>
+      </trkpt>
+      <trkpt lat="48.171478271484375" lon="11.416101455688477">
+        <name>128943</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90059</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132254&#xA;      &#xA;      &#xA;        132252&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20643615722656" lon="11.326740264892578">
+        <name>132254</name>
+      </trkpt>
+      <trkpt lat="48.20700454711914" lon="11.327171325683594">
+        <name>132252</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86933</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129203&#xA;      &#xA;      &#xA;        129204&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.3552131652832" lon="11.731014251708984">
+        <name>129203</name>
+      </trkpt>
+      <trkpt lat="48.35768127441406" lon="11.732471466064453">
+        <name>129204</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105168</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146716&#xA;      &#xA;      &#xA;        146717&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.179595947265625" lon="11.727705955505371">
+        <name>146716</name>
+      </trkpt>
+      <trkpt lat="48.17734909057617" lon="11.730448722839355">
+        <name>146717</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85891</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128214&#xA;      &#xA;      &#xA;        128215&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.197669982910156" lon="11.353066444396973">
+        <name>128214</name>
+      </trkpt>
+      <trkpt lat="48.197452545166016" lon="11.354342460632324">
+        <name>128215</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87715</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129974&#xA;      &#xA;      &#xA;        129968&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.162471771240234" lon="11.442952156066895">
+        <name>129974</name>
+      </trkpt>
+      <trkpt lat="48.161888122558594" lon="11.443370819091797">
+        <name>129968</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86673</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128943&#xA;      &#xA;      &#xA;        128944&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.171478271484375" lon="11.416101455688477">
+        <name>128943</name>
+      </trkpt>
+      <trkpt lat="48.17170715332031" lon="11.41641902923584">
+        <name>128944</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90060</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132252&#xA;      &#xA;      &#xA;        132251&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20700454711914" lon="11.327171325683594">
+        <name>132252</name>
+      </trkpt>
+      <trkpt lat="48.20708084106445" lon="11.327362060546875">
+        <name>132251</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86934</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129204&#xA;      &#xA;      &#xA;        129205&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.35768127441406" lon="11.732471466064453">
+        <name>129204</name>
+      </trkpt>
+      <trkpt lat="48.35955810546875" lon="11.733698844909668">
+        <name>129205</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105169</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146717&#xA;      &#xA;      &#xA;        146718&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17734909057617" lon="11.730448722839355">
+        <name>146717</name>
+      </trkpt>
+      <trkpt lat="48.17458724975586" lon="11.733591079711914">
+        <name>146718</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85892</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128215&#xA;      &#xA;      &#xA;        128216&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.197452545166016" lon="11.354342460632324">
+        <name>128215</name>
+      </trkpt>
+      <trkpt lat="48.196815490722656" lon="11.356856346130371">
+        <name>128216</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87716</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129971&#xA;      &#xA;      &#xA;        129975&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16154479980469" lon="11.442514419555664">
+        <name>129971</name>
+      </trkpt>
+      <trkpt lat="48.161048889160156" lon="11.44163703918457">
+        <name>129975</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86674</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128944&#xA;      &#xA;      &#xA;        128945&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17170715332031" lon="11.41641902923584">
+        <name>128944</name>
+      </trkpt>
+      <trkpt lat="48.1717643737793" lon="11.416621208190918">
+        <name>128945</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96573</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138244&#xA;      &#xA;      &#xA;        138247&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.36863708496094" lon="11.106646537780762">
+        <name>138244</name>
+      </trkpt>
+      <trkpt lat="48.369598388671875" lon="11.104031562805176">
+        <name>138247</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90061</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132251&#xA;      &#xA;      &#xA;        132250&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20708084106445" lon="11.327362060546875">
+        <name>132251</name>
+      </trkpt>
+      <trkpt lat="48.207210540771484" lon="11.327374458312988">
+        <name>132250</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86935</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129206&#xA;      &#xA;      &#xA;        129207&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.35946273803711" lon="11.733356475830078">
+        <name>129206</name>
+      </trkpt>
+      <trkpt lat="48.35768127441406" lon="11.732156753540039">
+        <name>129207</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96834</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138494&#xA;      &#xA;      &#xA;        138495&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24631118774414" lon="11.475956916809082">
+        <name>138494</name>
+      </trkpt>
+      <trkpt lat="48.247642517089844" lon="11.477270126342773">
+        <name>138495</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85893</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128216&#xA;      &#xA;      &#xA;        128217&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.196815490722656" lon="11.356856346130371">
+        <name>128216</name>
+      </trkpt>
+      <trkpt lat="48.19658279418945" lon="11.358247756958008">
+        <name>128217</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87717</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129975&#xA;      &#xA;      &#xA;        129976&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.161048889160156" lon="11.44163703918457">
+        <name>129975</name>
+      </trkpt>
+      <trkpt lat="48.16059112548828" lon="11.440990447998047">
+        <name>129976</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86675</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128945&#xA;      &#xA;      &#xA;        128946&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1717643737793" lon="11.416621208190918">
+        <name>128945</name>
+      </trkpt>
+      <trkpt lat="48.17185592651367" lon="11.41676139831543">
+        <name>128946</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96574</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138247&#xA;      &#xA;      &#xA;        138248&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.369598388671875" lon="11.104031562805176">
+        <name>138247</name>
+      </trkpt>
+      <trkpt lat="48.370628356933594" lon="11.101846694946289">
+        <name>138248</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90062</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132250&#xA;      &#xA;      &#xA;        132249&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.207210540771484" lon="11.327374458312988">
+        <name>132250</name>
+      </trkpt>
+      <trkpt lat="48.207275390625" lon="11.327197074890137">
+        <name>132249</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86936</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129207&#xA;      &#xA;      &#xA;        129208&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.35768127441406" lon="11.732156753540039">
+        <name>129207</name>
+      </trkpt>
+      <trkpt lat="48.3552131652832" lon="11.730671882629395">
+        <name>129208</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85894</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128217&#xA;      &#xA;      &#xA;        128218&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19658279418945" lon="11.358247756958008">
+        <name>128217</name>
+      </trkpt>
+      <trkpt lat="48.196380615234375" lon="11.359848022460938">
+        <name>128218</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87718</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129976&#xA;      &#xA;      &#xA;        129977&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16059112548828" lon="11.440990447998047">
+        <name>129976</name>
+      </trkpt>
+      <trkpt lat="48.16019821166992" lon="11.440552711486816">
+        <name>129977</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86676</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128946&#xA;      &#xA;      &#xA;        128947&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17185592651367" lon="11.41676139831543">
+        <name>128946</name>
+      </trkpt>
+      <trkpt lat="48.171939849853516" lon="11.417180061340332">
+        <name>128947</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96575</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138248&#xA;      &#xA;      &#xA;        138249&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.370628356933594" lon="11.101846694946289">
+        <name>138248</name>
+      </trkpt>
+      <trkpt lat="48.37324523925781" lon="11.097604751586914">
+        <name>138249</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90063</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132249&#xA;      &#xA;      &#xA;        132253&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.207275390625" lon="11.327197074890137">
+        <name>132249</name>
+      </trkpt>
+      <trkpt lat="48.20714569091797" lon="11.326993942260742">
+        <name>132253</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86937</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129208&#xA;      &#xA;      &#xA;        129200&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.3552131652832" lon="11.730671882629395">
+        <name>129208</name>
+      </trkpt>
+      <trkpt lat="48.352783203125" lon="11.72921371459961">
+        <name>129200</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96836</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138495&#xA;      &#xA;      &#xA;        138500&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.247642517089844" lon="11.477270126342773">
+        <name>138495</name>
+      </trkpt>
+      <trkpt lat="48.248687744140625" lon="11.478499412536621">
+        <name>138500</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85895</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128218&#xA;      &#xA;      &#xA;        128219&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.196380615234375" lon="11.359848022460938">
+        <name>128218</name>
+      </trkpt>
+      <trkpt lat="48.195831298828125" lon="11.361104011535645">
+        <name>128219</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87719</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129977&#xA;      &#xA;      &#xA;        129978&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16019821166992" lon="11.440552711486816">
+        <name>129977</name>
+      </trkpt>
+      <trkpt lat="48.160160064697266" lon="11.440266609191895">
+        <name>129978</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86677</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128947&#xA;      &#xA;      &#xA;        128948&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.171939849853516" lon="11.417180061340332">
+        <name>128947</name>
+      </trkpt>
+      <trkpt lat="48.172203063964844" lon="11.417598724365234">
+        <name>128948</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96576</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138249&#xA;      &#xA;      &#xA;        138250&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.37324523925781" lon="11.097604751586914">
+        <name>138249</name>
+      </trkpt>
+      <trkpt lat="48.376060485839844" lon="11.093191146850586">
+        <name>138250</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90064</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132253&#xA;      &#xA;      &#xA;        132252&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20714569091797" lon="11.326993942260742">
+        <name>132253</name>
+      </trkpt>
+      <trkpt lat="48.20700454711914" lon="11.327171325683594">
+        <name>132252</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86938</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129205&#xA;      &#xA;      &#xA;        129209&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.35955810546875" lon="11.733698844909668">
+        <name>129205</name>
+      </trkpt>
+      <trkpt lat="48.363182067871094" lon="11.736441612243652">
+        <name>129209</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96837</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138500&#xA;      &#xA;      &#xA;        138503&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.248687744140625" lon="11.478499412536621">
+        <name>138500</name>
+      </trkpt>
+      <trkpt lat="48.24971389770508" lon="11.480213165283203">
+        <name>138503</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85896</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128219&#xA;      &#xA;      &#xA;        128220&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.195831298828125" lon="11.361104011535645">
+        <name>128219</name>
+      </trkpt>
+      <trkpt lat="48.19512939453125" lon="11.363696098327637">
+        <name>128220</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87720</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129978&#xA;      &#xA;      &#xA;        129979&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.160160064697266" lon="11.440266609191895">
+        <name>129978</name>
+      </trkpt>
+      <trkpt lat="48.16059112548828" lon="11.439332962036133">
+        <name>129979</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86678</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128948&#xA;      &#xA;      &#xA;        128949&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.172203063964844" lon="11.417598724365234">
+        <name>128948</name>
+      </trkpt>
+      <trkpt lat="48.172969818115234" lon="11.418627738952637">
+        <name>128949</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96577</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138250&#xA;      &#xA;      &#xA;        138251&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.376060485839844" lon="11.093191146850586">
+        <name>138250</name>
+      </trkpt>
+      <trkpt lat="48.378822326660156" lon="11.088906288146973">
+        <name>138251</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90065</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132250&#xA;      &#xA;      &#xA;        132248&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.207210540771484" lon="11.327374458312988">
+        <name>132250</name>
+      </trkpt>
+      <trkpt lat="48.207401275634766" lon="11.327451705932617">
+        <name>132248</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86939</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129209&#xA;      &#xA;      &#xA;        129210&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.363182067871094" lon="11.736441612243652">
+        <name>129209</name>
+      </trkpt>
+      <trkpt lat="48.36629867553711" lon="11.739269256591797">
+        <name>129210</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85897</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128220&#xA;      &#xA;      &#xA;        128221&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19512939453125" lon="11.363696098327637">
+        <name>128220</name>
+      </trkpt>
+      <trkpt lat="48.194393157958984" lon="11.365962028503418">
+        <name>128221</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87721</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129979&#xA;      &#xA;      &#xA;        129980&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16059112548828" lon="11.439332962036133">
+        <name>129979</name>
+      </trkpt>
+      <trkpt lat="48.1610107421875" lon="11.438190460205078">
+        <name>129980</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86679</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128949&#xA;      &#xA;      &#xA;        128950&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.172969818115234" lon="11.418627738952637">
+        <name>128949</name>
+      </trkpt>
+      <trkpt lat="48.173851013183594" lon="11.419872283935547">
+        <name>128950</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90066</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132249&#xA;      &#xA;      &#xA;        132248&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.207275390625" lon="11.327197074890137">
+        <name>132249</name>
+      </trkpt>
+      <trkpt lat="48.207401275634766" lon="11.327451705932617">
+        <name>132248</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86940</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129211&#xA;      &#xA;      &#xA;        129212&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.366390228271484" lon="11.739041328430176">
+        <name>129211</name>
+      </trkpt>
+      <trkpt lat="48.36326217651367" lon="11.736241340637207">
+        <name>129212</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85898</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128221&#xA;      &#xA;      &#xA;        128222&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.194393157958984" lon="11.365962028503418">
+        <name>128221</name>
+      </trkpt>
+      <trkpt lat="48.193843841552734" lon="11.36777114868164">
+        <name>128222</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87722</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129980&#xA;      &#xA;      &#xA;        129981&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1610107421875" lon="11.438190460205078">
+        <name>129980</name>
+      </trkpt>
+      <trkpt lat="48.161468505859375" lon="11.43708610534668">
+        <name>129981</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86680</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128950&#xA;      &#xA;      &#xA;        128951&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.173851013183594" lon="11.419872283935547">
+        <name>128950</name>
+      </trkpt>
+      <trkpt lat="48.174095153808594" lon="11.420430183410645">
+        <name>128951</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90067</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132248&#xA;      &#xA;      &#xA;        132247&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.207401275634766" lon="11.327451705932617">
+        <name>132248</name>
+      </trkpt>
+      <trkpt lat="48.207698822021484" lon="11.327946662902832">
+        <name>132247</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86941</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129212&#xA;      &#xA;      &#xA;        129206&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.36326217651367" lon="11.736241340637207">
+        <name>129212</name>
+      </trkpt>
+      <trkpt lat="48.35946273803711" lon="11.733356475830078">
+        <name>129206</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96840</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138503&#xA;      &#xA;      &#xA;        138504&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24971389770508" lon="11.480213165283203">
+        <name>138503</name>
+      </trkpt>
+      <trkpt lat="48.250606536865234" lon="11.48232650756836">
+        <name>138504</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85899</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128222&#xA;      &#xA;      &#xA;        128223&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.193843841552734" lon="11.36777114868164">
+        <name>128222</name>
+      </trkpt>
+      <trkpt lat="48.193443298339844" lon="11.369275093078613">
+        <name>128223</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87723</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129981&#xA;      &#xA;      &#xA;        129982&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.161468505859375" lon="11.43708610534668">
+        <name>129981</name>
+      </trkpt>
+      <trkpt lat="48.16179656982422" lon="11.437276840209961">
+        <name>129982</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86681</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128951&#xA;      &#xA;      &#xA;        128952&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.174095153808594" lon="11.420430183410645">
+        <name>128951</name>
+      </trkpt>
+      <trkpt lat="48.17430114746094" lon="11.420811653137207">
+        <name>128952</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96320</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138009&#xA;      &#xA;      &#xA;        138012&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.242061614990234" lon="11.332230567932129">
+        <name>138009</name>
+      </trkpt>
+      <trkpt lat="48.24435806274414" lon="11.327432632446289">
+        <name>138012</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90068</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132247&#xA;      &#xA;      &#xA;        132239&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.207698822021484" lon="11.327946662902832">
+        <name>132247</name>
+      </trkpt>
+      <trkpt lat="48.20790481567383" lon="11.328593254089355">
+        <name>132239</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86942</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129210&#xA;      &#xA;      &#xA;        129213&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.36629867553711" lon="11.739269256591797">
+        <name>129210</name>
+      </trkpt>
+      <trkpt lat="48.36904525756836" lon="11.742125511169434">
+        <name>129213</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105177</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146718&#xA;      &#xA;      &#xA;        146726&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17458724975586" lon="11.733591079711914">
+        <name>146718</name>
+      </trkpt>
+      <trkpt lat="48.17152404785156" lon="11.73678970336914">
+        <name>146726</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85900</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128223&#xA;      &#xA;      &#xA;        128224&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.193443298339844" lon="11.369275093078613">
+        <name>128223</name>
+      </trkpt>
+      <trkpt lat="48.19287109375" lon="11.371485710144043">
+        <name>128224</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87724</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129982&#xA;      &#xA;      &#xA;        129983&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16179656982422" lon="11.437276840209961">
+        <name>129982</name>
+      </trkpt>
+      <trkpt lat="48.16288757324219" lon="11.437276840209961">
+        <name>129983</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86682</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128952&#xA;      &#xA;      &#xA;        128953&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17430114746094" lon="11.420811653137207">
+        <name>128952</name>
+      </trkpt>
+      <trkpt lat="48.174461364746094" lon="11.420989036560059">
+        <name>128953</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96321</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138012&#xA;      &#xA;      &#xA;        138013&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24435806274414" lon="11.327432632446289">
+        <name>138012</name>
+      </trkpt>
+      <trkpt lat="48.24637222290039" lon="11.323319435119629">
+        <name>138013</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90069</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132255&#xA;      &#xA;      &#xA;        128178&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2056770324707" lon="11.326091766357422">
+        <name>132255</name>
+      </trkpt>
+      <trkpt lat="48.20518493652344" lon="11.326984405517578">
+        <name>128178</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86943</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129213&#xA;      &#xA;      &#xA;        129214&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.36904525756836" lon="11.742125511169434">
+        <name>129213</name>
+      </trkpt>
+      <trkpt lat="48.37189483642578" lon="11.745525360107422">
+        <name>129214</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105178</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146726&#xA;      &#xA;      &#xA;        146727&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17152404785156" lon="11.73678970336914">
+        <name>146726</name>
+      </trkpt>
+      <trkpt lat="48.16843795776367" lon="11.739703178405762">
+        <name>146727</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85901</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128224&#xA;      &#xA;      &#xA;        128225&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19287109375" lon="11.371485710144043">
+        <name>128224</name>
+      </trkpt>
+      <trkpt lat="48.19234085083008" lon="11.373237609863281">
+        <name>128225</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87725</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129983&#xA;      &#xA;      &#xA;        129984&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16288757324219" lon="11.437276840209961">
+        <name>129983</name>
+      </trkpt>
+      <trkpt lat="48.16349792480469" lon="11.437353134155273">
+        <name>129984</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86683</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128953&#xA;      &#xA;      &#xA;        128954&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.174461364746094" lon="11.420989036560059">
+        <name>128953</name>
+      </trkpt>
+      <trkpt lat="48.1744499206543" lon="11.421674728393555">
+        <name>128954</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96322</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138013&#xA;      &#xA;      &#xA;        138014&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24637222290039" lon="11.323319435119629">
+        <name>138013</name>
+      </trkpt>
+      <trkpt lat="48.24833679199219" lon="11.319319725036621">
+        <name>138014</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90070</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128158&#xA;      &#xA;      &#xA;        132256&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19739532470703" lon="11.31182861328125">
+        <name>128158</name>
+      </trkpt>
+      <trkpt lat="48.19674301147461" lon="11.309815406799316">
+        <name>132256</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86944</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129215&#xA;      &#xA;      &#xA;        129216&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.3719367980957" lon="11.745268821716309">
+        <name>129215</name>
+      </trkpt>
+      <trkpt lat="48.36908721923828" lon="11.74186897277832">
+        <name>129216</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105179</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146727&#xA;      &#xA;      &#xA;        146729&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16843795776367" lon="11.739703178405762">
+        <name>146727</name>
+      </trkpt>
+      <trkpt lat="48.16543197631836" lon="11.742560386657715">
+        <name>146729</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85902</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128225&#xA;      &#xA;      &#xA;        128226&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19234085083008" lon="11.373237609863281">
+        <name>128225</name>
+      </trkpt>
+      <trkpt lat="48.19114303588867" lon="11.375065803527832">
+        <name>128226</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87726</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129984&#xA;      &#xA;      &#xA;        129988&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16349792480469" lon="11.437353134155273">
+        <name>129984</name>
+      </trkpt>
+      <trkpt lat="48.163551330566406" lon="11.439733505249023">
+        <name>129988</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86684</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128954&#xA;      &#xA;      &#xA;        128955&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1744499206543" lon="11.421674728393555">
+        <name>128954</name>
+      </trkpt>
+      <trkpt lat="48.17435073852539" lon="11.422626495361328">
+        <name>128955</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96323</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138014&#xA;      &#xA;      &#xA;        138019&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.24833679199219" lon="11.319319725036621">
+        <name>138014</name>
+      </trkpt>
+      <trkpt lat="48.25025177001953" lon="11.31540584564209">
+        <name>138019</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90071</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132256&#xA;      &#xA;      &#xA;        132257&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19674301147461" lon="11.309815406799316">
+        <name>132256</name>
+      </trkpt>
+      <trkpt lat="48.19643783569336" lon="11.308073043823242">
+        <name>132257</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86945</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129216&#xA;      &#xA;      &#xA;        129211&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.36908721923828" lon="11.74186897277832">
+        <name>129216</name>
+      </trkpt>
+      <trkpt lat="48.366390228271484" lon="11.739041328430176">
+        <name>129211</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85903</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128226&#xA;      &#xA;      &#xA;        128227&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19114303588867" lon="11.375065803527832">
+        <name>128226</name>
+      </trkpt>
+      <trkpt lat="48.18982696533203" lon="11.377103805541992">
+        <name>128227</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87727</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129988&#xA;      &#xA;      &#xA;        129987&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.163551330566406" lon="11.439733505249023">
+        <name>129988</name>
+      </trkpt>
+      <trkpt lat="48.16362380981445" lon="11.440876007080078">
+        <name>129987</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86685</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128955&#xA;      &#xA;      &#xA;        128956&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17435073852539" lon="11.422626495361328">
+        <name>128955</name>
+      </trkpt>
+      <trkpt lat="48.17431640625" lon="11.423211097717285">
+        <name>128956</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90072</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132257&#xA;      &#xA;      &#xA;        132258&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19643783569336" lon="11.308073043823242">
+        <name>132257</name>
+      </trkpt>
+      <trkpt lat="48.19647979736328" lon="11.30595874786377">
+        <name>132258</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86946</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129214&#xA;      &#xA;      &#xA;        129217&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.37189483642578" lon="11.745525360107422">
+        <name>129214</name>
+      </trkpt>
+      <trkpt lat="48.374454498291016" lon="11.749067306518555">
+        <name>129217</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85904</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128227&#xA;      &#xA;      &#xA;        128228&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18982696533203" lon="11.377103805541992">
+        <name>128227</name>
+      </trkpt>
+      <trkpt lat="48.18793487548828" lon="11.380284309387207">
+        <name>128228</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87728</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129987&#xA;      &#xA;      &#xA;        129965&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16362380981445" lon="11.440876007080078">
+        <name>129987</name>
+      </trkpt>
+      <trkpt lat="48.163856506347656" lon="11.443180084228516">
+        <name>129965</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86686</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128956&#xA;      &#xA;      &#xA;        128957&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17431640625" lon="11.423211097717285">
+        <name>128956</name>
+      </trkpt>
+      <trkpt lat="48.174217224121094" lon="11.424162864685059">
+        <name>128957</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96325</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138019&#xA;      &#xA;      &#xA;        138020&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25025177001953" lon="11.31540584564209">
+        <name>138019</name>
+      </trkpt>
+      <trkpt lat="48.252193450927734" lon="11.311464309692383">
+        <name>138020</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90073</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132258&#xA;      &#xA;      &#xA;        132259&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19647979736328" lon="11.30595874786377">
+        <name>132258</name>
+      </trkpt>
+      <trkpt lat="48.196990966796875" lon="11.304101943969727">
+        <name>132259</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86947</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129217&#xA;      &#xA;      &#xA;        129218&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.374454498291016" lon="11.749067306518555">
+        <name>129217</name>
+      </trkpt>
+      <trkpt lat="48.37686538696289" lon="11.752809524536133">
+        <name>129218</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85905</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128228&#xA;      &#xA;      &#xA;        128229&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18793487548828" lon="11.380284309387207">
+        <name>128228</name>
+      </trkpt>
+      <trkpt lat="48.186790466308594" lon="11.382305145263672">
+        <name>128229</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87729</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129987&#xA;      &#xA;      &#xA;        129985&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16362380981445" lon="11.440876007080078">
+        <name>129987</name>
+      </trkpt>
+      <trkpt lat="48.16291427612305" lon="11.441009521484375">
+        <name>129985</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86687</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128957&#xA;      &#xA;      &#xA;        128958&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.174217224121094" lon="11.424162864685059">
+        <name>128957</name>
+      </trkpt>
+      <trkpt lat="48.17410659790039" lon="11.425445556640625">
+        <name>128958</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90074</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132259&#xA;      &#xA;      &#xA;        132260&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.196990966796875" lon="11.304101943969727">
+        <name>132259</name>
+      </trkpt>
+      <trkpt lat="48.19778823852539" lon="11.302645683288574">
+        <name>132260</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86948</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129218&#xA;      &#xA;      &#xA;        129219&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.37686538696289" lon="11.752809524536133">
+        <name>129218</name>
+      </trkpt>
+      <trkpt lat="48.37912368774414" lon="11.756837844848633">
+        <name>129219</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105183</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146732&#xA;      &#xA;      &#xA;        146729&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.160892486572266" lon="11.74661636352539">
+        <name>146732</name>
+      </trkpt>
+      <trkpt lat="48.16543197631836" lon="11.742560386657715">
+        <name>146729</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86688</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128958&#xA;      &#xA;      &#xA;        128959&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17410659790039" lon="11.425445556640625">
+        <name>128958</name>
+      </trkpt>
+      <trkpt lat="48.17397689819336" lon="11.426778793334961">
+        <name>128959</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96587</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138251&#xA;      &#xA;      &#xA;        138261&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.378822326660156" lon="11.088906288146973">
+        <name>138251</name>
+      </trkpt>
+      <trkpt lat="48.38204574584961" lon="11.083934783935547">
+        <name>138261</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87730</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129985&#xA;      &#xA;      &#xA;        129986&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16291427612305" lon="11.441009521484375">
+        <name>129985</name>
+      </trkpt>
+      <trkpt lat="48.16281509399414" lon="11.43921947479248">
+        <name>129986</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96327</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138020&#xA;      &#xA;      &#xA;        138021&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.252193450927734" lon="11.311464309692383">
+        <name>138020</name>
+      </trkpt>
+      <trkpt lat="48.25426483154297" lon="11.30717945098877">
+        <name>138021</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86949</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129220&#xA;      &#xA;      &#xA;        129221&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.379241943359375" lon="11.756551742553711">
+        <name>129220</name>
+      </trkpt>
+      <trkpt lat="48.37690353393555" lon="11.752409934997559">
+        <name>129221</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96848</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138504&#xA;      &#xA;      &#xA;        138515&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.250606536865234" lon="11.48232650756836">
+        <name>138504</name>
+      </trkpt>
+      <trkpt lat="48.25114440917969" lon="11.48441219329834">
+        <name>138515</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87731</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129986&#xA;      &#xA;      &#xA;        129983&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16281509399414" lon="11.43921947479248">
+        <name>129986</name>
+      </trkpt>
+      <trkpt lat="48.16288757324219" lon="11.437276840209961">
+        <name>129983</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90076</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132260&#xA;      &#xA;      &#xA;        132261&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19778823852539" lon="11.302645683288574">
+        <name>132260</name>
+      </trkpt>
+      <trkpt lat="48.198822021484375" lon="11.301636695861816">
+        <name>132261</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86950</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129221&#xA;      &#xA;      &#xA;        129222&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.37690353393555" lon="11.752409934997559">
+        <name>129221</name>
+      </trkpt>
+      <trkpt lat="48.37458801269531" lon="11.748895645141602">
+        <name>129222</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96849</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138515&#xA;      &#xA;      &#xA;        138516&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25114440917969" lon="11.48441219329834">
+        <name>138515</name>
+      </trkpt>
+      <trkpt lat="48.25156021118164" lon="11.487468719482422">
+        <name>138516</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85908</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128231&#xA;      &#xA;      &#xA;        128232&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1844367980957" lon="11.386801719665527">
+        <name>128231</name>
+      </trkpt>
+      <trkpt lat="48.18360900878906" lon="11.388019561767578">
+        <name>128232</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87732</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129981&#xA;      &#xA;      &#xA;        129993&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.161468505859375" lon="11.43708610534668">
+        <name>129981</name>
+      </trkpt>
+      <trkpt lat="48.161746978759766" lon="11.436477661132812">
+        <name>129993</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90077</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132261&#xA;      &#xA;      &#xA;        127333&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.198822021484375" lon="11.301636695861816">
+        <name>132261</name>
+      </trkpt>
+      <trkpt lat="48.19929885864258" lon="11.301359176635742">
+        <name>127333</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86951</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129222&#xA;      &#xA;      &#xA;        129215&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.37458801269531" lon="11.748895645141602">
+        <name>129222</name>
+      </trkpt>
+      <trkpt lat="48.3719367980957" lon="11.745268821716309">
+        <name>129215</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96850</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138516&#xA;      &#xA;      &#xA;        138517&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25156021118164" lon="11.487468719482422">
+        <name>138516</name>
+      </trkpt>
+      <trkpt lat="48.251827239990234" lon="11.49038314819336">
+        <name>138517</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85909</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128232&#xA;      &#xA;      &#xA;        128233&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18360900878906" lon="11.388019561767578">
+        <name>128232</name>
+      </trkpt>
+      <trkpt lat="48.18272018432617" lon="11.388762474060059">
+        <name>128233</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86691</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128957&#xA;      &#xA;      &#xA;        128962&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.174217224121094" lon="11.424162864685059">
+        <name>128957</name>
+      </trkpt>
+      <trkpt lat="48.1751594543457" lon="11.425369262695312">
+        <name>128962</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87733</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129993&#xA;      &#xA;      &#xA;        129992&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.161746978759766" lon="11.436477661132812">
+        <name>129993</name>
+      </trkpt>
+      <trkpt lat="48.161808013916016" lon="11.436019897460938">
+        <name>129992</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90078</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132261&#xA;      &#xA;      &#xA;        127314&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.198822021484375" lon="11.301636695861816">
+        <name>132261</name>
+      </trkpt>
+      <trkpt lat="48.19981002807617" lon="11.3050537109375">
+        <name>127314</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86952</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129219&#xA;      &#xA;      &#xA;        129223&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.37912368774414" lon="11.756837844848633">
+        <name>129219</name>
+      </trkpt>
+      <trkpt lat="48.3812141418457" lon="11.761007308959961">
+        <name>129223</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96851</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138517&#xA;      &#xA;      &#xA;        138518&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.251827239990234" lon="11.49038314819336">
+        <name>138517</name>
+      </trkpt>
+      <trkpt lat="48.25215148925781" lon="11.49281120300293">
+        <name>138518</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105187</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146732&#xA;      &#xA;      &#xA;        146736&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.160892486572266" lon="11.74661636352539">
+        <name>146732</name>
+      </trkpt>
+      <trkpt lat="48.15791320800781" lon="11.749157905578613">
+        <name>146736</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85910</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128233&#xA;      &#xA;      &#xA;        128234&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18272018432617" lon="11.388762474060059">
+        <name>128233</name>
+      </trkpt>
+      <trkpt lat="48.18208694458008" lon="11.389562606811523">
+        <name>128234</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105448</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146977&#xA;      &#xA;      &#xA;        147004&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03430938720703" lon="11.594161987304688">
+        <name>146977</name>
+      </trkpt>
+      <trkpt lat="48.03479766845703" lon="11.591423034667969">
+        <name>147004</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86692</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128962&#xA;      &#xA;      &#xA;        128963&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1751594543457" lon="11.425369262695312">
+        <name>128962</name>
+      </trkpt>
+      <trkpt lat="48.176368713378906" lon="11.427108764648438">
+        <name>128963</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87734</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129992&#xA;      &#xA;      &#xA;        129991&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.161808013916016" lon="11.436019897460938">
+        <name>129992</name>
+      </trkpt>
+      <trkpt lat="48.16197204589844" lon="11.435981750488281">
+        <name>129991</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90079</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128412&#xA;      &#xA;      &#xA;        132263&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.205360412597656" lon="11.296099662780762">
+        <name>128412</name>
+      </trkpt>
+      <trkpt lat="48.205867767333984" lon="11.294151306152344">
+        <name>132263</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86953</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129223&#xA;      &#xA;      &#xA;        129224&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.3812141418457" lon="11.761007308959961">
+        <name>129223</name>
+      </trkpt>
+      <trkpt lat="48.38325881958008" lon="11.76580810546875">
+        <name>129224</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96852</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138518&#xA;      &#xA;      &#xA;        138519&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25215148925781" lon="11.49281120300293">
+        <name>138518</name>
+      </trkpt>
+      <trkpt lat="48.252685546875" lon="11.495067596435547">
+        <name>138519</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105188</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146736&#xA;      &#xA;      &#xA;        146737&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15791320800781" lon="11.749157905578613">
+        <name>146736</name>
+      </trkpt>
+      <trkpt lat="48.15407943725586" lon="11.75218677520752">
+        <name>146737</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85911</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128234&#xA;      &#xA;      &#xA;        128235&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18208694458008" lon="11.389562606811523">
+        <name>128234</name>
+      </trkpt>
+      <trkpt lat="48.180641174316406" lon="11.392782211303711">
+        <name>128235</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105449</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147004&#xA;      &#xA;      &#xA;        147005&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03479766845703" lon="11.591423034667969">
+        <name>147004</name>
+      </trkpt>
+      <trkpt lat="48.03504180908203" lon="11.588909149169922">
+        <name>147005</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86693</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128963&#xA;      &#xA;      &#xA;        128965&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.176368713378906" lon="11.427108764648438">
+        <name>128963</name>
+      </trkpt>
+      <trkpt lat="48.17868423461914" lon="11.42976188659668">
+        <name>128965</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87735</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129991&#xA;      &#xA;      &#xA;        129990&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16197204589844" lon="11.435981750488281">
+        <name>129991</name>
+      </trkpt>
+      <trkpt lat="48.16217803955078" lon="11.436266899108887">
+        <name>129990</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90080</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132263&#xA;      &#xA;      &#xA;        132262&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.205867767333984" lon="11.294151306152344">
+        <name>132263</name>
+      </trkpt>
+      <trkpt lat="48.20594024658203" lon="11.293770790100098">
+        <name>132262</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105189</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146737&#xA;      &#xA;      &#xA;        146738&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15407943725586" lon="11.75218677520752">
+        <name>146737</name>
+      </trkpt>
+      <trkpt lat="48.15127182006836" lon="11.754128456115723">
+        <name>146738</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85912</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128235&#xA;      &#xA;      &#xA;        128236&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.180641174316406" lon="11.392782211303711">
+        <name>128235</name>
+      </trkpt>
+      <trkpt lat="48.179840087890625" lon="11.395505905151367">
+        <name>128236</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105450</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147005&#xA;      &#xA;      &#xA;        147006&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03504180908203" lon="11.588909149169922">
+        <name>147005</name>
+      </trkpt>
+      <trkpt lat="48.03508758544922" lon="11.587623596191406">
+        <name>147006</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86694</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128961&#xA;      &#xA;      &#xA;        128964&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17674255371094" lon="11.428302764892578">
+        <name>128961</name>
+      </trkpt>
+      <trkpt lat="48.1785774230957" lon="11.43030834197998">
+        <name>128964</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87736</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129990&#xA;      &#xA;      &#xA;        129989&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16217803955078" lon="11.436266899108887">
+        <name>129990</name>
+      </trkpt>
+      <trkpt lat="48.163551330566406" lon="11.436266899108887">
+        <name>129989</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90081</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132262&#xA;      &#xA;      &#xA;        128410&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20594024658203" lon="11.293770790100098">
+        <name>132262</name>
+      </trkpt>
+      <trkpt lat="48.206668853759766" lon="11.289644241333008">
+        <name>128410</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96854</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138519&#xA;      &#xA;      &#xA;        138520&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.252685546875" lon="11.495067596435547">
+        <name>138519</name>
+      </trkpt>
+      <trkpt lat="48.25344467163086" lon="11.497037887573242">
+        <name>138520</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105190</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146738&#xA;      &#xA;      &#xA;        146739&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15127182006836" lon="11.754128456115723">
+        <name>146738</name>
+      </trkpt>
+      <trkpt lat="48.14774703979492" lon="11.75610065460205">
+        <name>146739</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85913</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128236&#xA;      &#xA;      &#xA;        128237&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.179840087890625" lon="11.395505905151367">
+        <name>128236</name>
+      </trkpt>
+      <trkpt lat="48.1796875" lon="11.398838996887207">
+        <name>128237</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105451</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147006&#xA;      &#xA;      &#xA;        147007&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03508758544922" lon="11.587623596191406">
+        <name>147006</name>
+      </trkpt>
+      <trkpt lat="48.03508758544922" lon="11.586734771728516">
+        <name>147007</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87737</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129989&#xA;      &#xA;      &#xA;        129984&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.163551330566406" lon="11.436266899108887">
+        <name>129989</name>
+      </trkpt>
+      <trkpt lat="48.16349792480469" lon="11.437353134155273">
+        <name>129984</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90082</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132262&#xA;      &#xA;      &#xA;        132264&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20594024658203" lon="11.293770790100098">
+        <name>132262</name>
+      </trkpt>
+      <trkpt lat="48.20610809326172" lon="11.29384708404541">
+        <name>132264</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86956</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129227&#xA;      &#xA;      &#xA;        129228&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.383392333984375" lon="11.765522003173828">
+        <name>129227</name>
+      </trkpt>
+      <trkpt lat="48.381248474121094" lon="11.760522842407227">
+        <name>129228</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105191</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146739&#xA;      &#xA;      &#xA;        146740&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14774703979492" lon="11.75610065460205">
+        <name>146739</name>
+      </trkpt>
+      <trkpt lat="48.14534378051758" lon="11.757185935974121">
+        <name>146740</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85914</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128237&#xA;      &#xA;      &#xA;        128238&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1796875" lon="11.398838996887207">
+        <name>128237</name>
+      </trkpt>
+      <trkpt lat="48.17930221557617" lon="11.398858070373535">
+        <name>128238</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105452</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147007&#xA;      &#xA;      &#xA;        147008&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03508758544922" lon="11.586734771728516">
+        <name>147007</name>
+      </trkpt>
+      <trkpt lat="48.03512191772461" lon="11.586442947387695">
+        <name>147008</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87738</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129994&#xA;      &#xA;      &#xA;        129989&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.163719177246094" lon="11.435429573059082">
+        <name>129994</name>
+      </trkpt>
+      <trkpt lat="48.163551330566406" lon="11.436266899108887">
+        <name>129989</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90083</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132264&#xA;      &#xA;      &#xA;        132265&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20610809326172" lon="11.29384708404541">
+        <name>132264</name>
+      </trkpt>
+      <trkpt lat="48.206390380859375" lon="11.293675422668457">
+        <name>132265</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86957</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129228&#xA;      &#xA;      &#xA;        129220&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.381248474121094" lon="11.760522842407227">
+        <name>129228</name>
+      </trkpt>
+      <trkpt lat="48.379241943359375" lon="11.756551742553711">
+        <name>129220</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96856</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138520&#xA;      &#xA;      &#xA;        138522&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25344467163086" lon="11.497037887573242">
+        <name>138520</name>
+      </trkpt>
+      <trkpt lat="48.2540168762207" lon="11.498437881469727">
+        <name>138522</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105192</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146740&#xA;      &#xA;      &#xA;        146741&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14534378051758" lon="11.757185935974121">
+        <name>146740</name>
+      </trkpt>
+      <trkpt lat="48.142581939697266" lon="11.758014678955078">
+        <name>146741</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85915</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128238&#xA;      &#xA;      &#xA;        128239&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17930221557617" lon="11.398858070373535">
+        <name>128238</name>
+      </trkpt>
+      <trkpt lat="48.179073333740234" lon="11.398971557617188">
+        <name>128239</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105453</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147008&#xA;      &#xA;      &#xA;        147013&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03512191772461" lon="11.586442947387695">
+        <name>147008</name>
+      </trkpt>
+      <trkpt lat="48.03520584106445" lon="11.586200714111328">
+        <name>147013</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87739</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129994&#xA;      &#xA;      &#xA;        129996&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.163719177246094" lon="11.435429573059082">
+        <name>129994</name>
+      </trkpt>
+      <trkpt lat="48.164146423339844" lon="11.435867309570312">
+        <name>129996</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90084</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132265&#xA;      &#xA;      &#xA;        132266&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.206390380859375" lon="11.293675422668457">
+        <name>132265</name>
+      </trkpt>
+      <trkpt lat="48.206783294677734" lon="11.293007850646973">
+        <name>132266</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105193</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146741&#xA;      &#xA;      &#xA;        146742&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.142581939697266" lon="11.758014678955078">
+        <name>146741</name>
+      </trkpt>
+      <trkpt lat="48.14021682739258" lon="11.758528709411621">
+        <name>146742</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85916</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128239&#xA;      &#xA;      &#xA;        128240&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.179073333740234" lon="11.398971557617188">
+        <name>128239</name>
+      </trkpt>
+      <trkpt lat="48.17836380004883" lon="11.400629043579102">
+        <name>128240</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105454</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147013&#xA;      &#xA;      &#xA;        147012&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03520584106445" lon="11.586200714111328">
+        <name>147013</name>
+      </trkpt>
+      <trkpt lat="48.035072326660156" lon="11.585986137390137">
+        <name>147012</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87740</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129996&#xA;      &#xA;      &#xA;        129997&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.164146423339844" lon="11.435867309570312">
+        <name>129996</name>
+      </trkpt>
+      <trkpt lat="48.16454315185547" lon="11.436134338378906">
+        <name>129997</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90085</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132263&#xA;      &#xA;      &#xA;        132264&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.205867767333984" lon="11.294151306152344">
+        <name>132263</name>
+      </trkpt>
+      <trkpt lat="48.20610809326172" lon="11.29384708404541">
+        <name>132264</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96858</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138522&#xA;      &#xA;      &#xA;        138523&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2540168762207" lon="11.498437881469727">
+        <name>138522</name>
+      </trkpt>
+      <trkpt lat="48.254188537597656" lon="11.499837875366211">
+        <name>138523</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85917</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128240&#xA;      &#xA;      &#xA;        128241&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17836380004883" lon="11.400629043579102">
+        <name>128240</name>
+      </trkpt>
+      <trkpt lat="48.178401947021484" lon="11.401885986328125">
+        <name>128241</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105455</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147012&#xA;      &#xA;      &#xA;        147011&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.035072326660156" lon="11.585986137390137">
+        <name>147012</name>
+      </trkpt>
+      <trkpt lat="48.03492736816406" lon="11.586137771606445">
+        <name>147011</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86699</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128968&#xA;      &#xA;      &#xA;        128970&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18305206298828" lon="11.433813095092773">
+        <name>128968</name>
+      </trkpt>
+      <trkpt lat="48.183956146240234" lon="11.43463134765625">
+        <name>128970</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87741</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129997&#xA;      &#xA;      &#xA;        129998&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16454315185547" lon="11.436134338378906">
+        <name>129997</name>
+      </trkpt>
+      <trkpt lat="48.164642333984375" lon="11.436400413513184">
+        <name>129998</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90086</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132266&#xA;      &#xA;      &#xA;        132267&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.206783294677734" lon="11.293007850646973">
+        <name>132266</name>
+      </trkpt>
+      <trkpt lat="48.20726013183594" lon="11.293370246887207">
+        <name>132267</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85918</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128241&#xA;      &#xA;      &#xA;        128242&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.178401947021484" lon="11.401885986328125">
+        <name>128241</name>
+      </trkpt>
+      <trkpt lat="48.17850112915039" lon="11.402514457702637">
+        <name>128242</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105456</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147011&#xA;      &#xA;      &#xA;        147010&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03492736816406" lon="11.586137771606445">
+        <name>147011</name>
+      </trkpt>
+      <trkpt lat="48.03492736816406" lon="11.586302757263184">
+        <name>147010</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86700</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128969&#xA;      &#xA;      &#xA;        128971&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18302536010742" lon="11.434365272521973">
+        <name>128969</name>
+      </trkpt>
+      <trkpt lat="48.184043884277344" lon="11.435145378112793">
+        <name>128971</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87742</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129998&#xA;      &#xA;      &#xA;        129999&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.164642333984375" lon="11.436400413513184">
+        <name>129998</name>
+      </trkpt>
+      <trkpt lat="48.1647834777832" lon="11.438780784606934">
+        <name>129999</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90087</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132267&#xA;      &#xA;      &#xA;        132268&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20726013183594" lon="11.293370246887207">
+        <name>132267</name>
+      </trkpt>
+      <trkpt lat="48.20848846435547" lon="11.29462718963623">
+        <name>132268</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96860</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138523&#xA;      &#xA;      &#xA;        138526&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.254188537597656" lon="11.499837875366211">
+        <name>138523</name>
+      </trkpt>
+      <trkpt lat="48.253936767578125" lon="11.503922462463379">
+        <name>138526</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85919</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128238&#xA;      &#xA;      &#xA;        128245&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17930221557617" lon="11.398858070373535">
+        <name>128238</name>
+      </trkpt>
+      <trkpt lat="48.179378509521484" lon="11.40104866027832">
+        <name>128245</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105457</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147010&#xA;      &#xA;      &#xA;        147009&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03492736816406" lon="11.586302757263184">
+        <name>147010</name>
+      </trkpt>
+      <trkpt lat="48.035030364990234" lon="11.586403846740723">
+        <name>147009</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86701</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128970&#xA;      &#xA;      &#xA;        128972&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.183956146240234" lon="11.43463134765625">
+        <name>128970</name>
+      </trkpt>
+      <trkpt lat="48.18587112426758" lon="11.435945510864258">
+        <name>128972</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87743</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129999&#xA;      &#xA;      &#xA;        130000&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1647834777832" lon="11.438780784606934">
+        <name>129999</name>
+      </trkpt>
+      <trkpt lat="48.1644287109375" lon="11.439676284790039">
+        <name>130000</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90088</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132268&#xA;      &#xA;      &#xA;        132269&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20848846435547" lon="11.29462718963623">
+        <name>132268</name>
+      </trkpt>
+      <trkpt lat="48.21006393432617" lon="11.296036720275879">
+        <name>132269</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96861</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138526&#xA;      &#xA;      &#xA;        138528&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.253936767578125" lon="11.503922462463379">
+        <name>138526</name>
+      </trkpt>
+      <trkpt lat="48.25371170043945" lon="11.507694244384766">
+        <name>138528</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85920</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128245&#xA;      &#xA;      &#xA;        128244&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.179378509521484" lon="11.40104866027832">
+        <name>128245</name>
+      </trkpt>
+      <trkpt lat="48.17925262451172" lon="11.401580810546875">
+        <name>128244</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105458</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147009&#xA;      &#xA;      &#xA;        147008&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.035030364990234" lon="11.586403846740723">
+        <name>147009</name>
+      </trkpt>
+      <trkpt lat="48.03512191772461" lon="11.586442947387695">
+        <name>147008</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86702</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128971&#xA;      &#xA;      &#xA;        128973&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.184043884277344" lon="11.435145378112793">
+        <name>128971</name>
+      </trkpt>
+      <trkpt lat="48.185516357421875" lon="11.436097145080566">
+        <name>128973</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87744</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130000&#xA;      &#xA;      &#xA;        129988&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1644287109375" lon="11.439676284790039">
+        <name>130000</name>
+      </trkpt>
+      <trkpt lat="48.163551330566406" lon="11.439733505249023">
+        <name>129988</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90089</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132269&#xA;      &#xA;      &#xA;        132270&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21006393432617" lon="11.296036720275879">
+        <name>132269</name>
+      </trkpt>
+      <trkpt lat="48.21098327636719" lon="11.296647071838379">
+        <name>132270</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105198</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146742&#xA;      &#xA;      &#xA;        146754&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.14021682739258" lon="11.758528709411621">
+        <name>146742</name>
+      </trkpt>
+      <trkpt lat="48.13761901855469" lon="11.758956909179688">
+        <name>146754</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85921</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128244&#xA;      &#xA;      &#xA;        128243&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17925262451172" lon="11.401580810546875">
+        <name>128244</name>
+      </trkpt>
+      <trkpt lat="48.178855895996094" lon="11.402247428894043">
+        <name>128243</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105459</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147009&#xA;      &#xA;      &#xA;        147007&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.035030364990234" lon="11.586403846740723">
+        <name>147009</name>
+      </trkpt>
+      <trkpt lat="48.03508758544922" lon="11.586734771728516">
+        <name>147007</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86703</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128972&#xA;      &#xA;      &#xA;        128974&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18587112426758" lon="11.435945510864258">
+        <name>128972</name>
+      </trkpt>
+      <trkpt lat="48.18747329711914" lon="11.436745643615723">
+        <name>128974</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87745</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129994&#xA;      &#xA;      &#xA;        129995&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.163719177246094" lon="11.435429573059082">
+        <name>129994</name>
+      </trkpt>
+      <trkpt lat="48.16404724121094" lon="11.434248924255371">
+        <name>129995</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96342</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138021&#xA;      &#xA;      &#xA;        138033&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25426483154297" lon="11.30717945098877">
+        <name>138021</name>
+      </trkpt>
+      <trkpt lat="48.25551986694336" lon="11.304695129394531">
+        <name>138033</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90090</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132270&#xA;      &#xA;      &#xA;        132271&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21098327636719" lon="11.296647071838379">
+        <name>132270</name>
+      </trkpt>
+      <trkpt lat="48.212066650390625" lon="11.297504425048828">
+        <name>132271</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96863</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138528&#xA;      &#xA;      &#xA;        138533&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25371170043945" lon="11.507694244384766">
+        <name>138528</name>
+      </trkpt>
+      <trkpt lat="48.2534294128418" lon="11.512406349182129">
+        <name>138533</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85922</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128243&#xA;      &#xA;      &#xA;        128242&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.178855895996094" lon="11.402247428894043">
+        <name>128243</name>
+      </trkpt>
+      <trkpt lat="48.17850112915039" lon="11.402514457702637">
+        <name>128242</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105460</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147010&#xA;      &#xA;      &#xA;        147014&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03492736816406" lon="11.586302757263184">
+        <name>147010</name>
+      </trkpt>
+      <trkpt lat="48.034767150878906" lon="11.586189270019531">
+        <name>147014</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86704</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128973&#xA;      &#xA;      &#xA;        128975&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.185516357421875" lon="11.436097145080566">
+        <name>128973</name>
+      </trkpt>
+      <trkpt lat="48.187320709228516" lon="11.436917304992676">
+        <name>128975</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87746</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129995&#xA;      &#xA;      &#xA;        129832&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16404724121094" lon="11.434248924255371">
+        <name>129995</name>
+      </trkpt>
+      <trkpt lat="48.16414260864258" lon="11.433693885803223">
+        <name>129832</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90091</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132271&#xA;      &#xA;      &#xA;        132272&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.212066650390625" lon="11.297504425048828">
+        <name>132271</name>
+      </trkpt>
+      <trkpt lat="48.2110595703125" lon="11.300627708435059">
+        <name>132272</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85923</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128242&#xA;      &#xA;      &#xA;        128246&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17850112915039" lon="11.402514457702637">
+        <name>128242</name>
+      </trkpt>
+      <trkpt lat="48.17849349975586" lon="11.404114723205566">
+        <name>128246</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105461</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147011&#xA;      &#xA;      &#xA;        147014&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03492736816406" lon="11.586137771606445">
+        <name>147011</name>
+      </trkpt>
+      <trkpt lat="48.034767150878906" lon="11.586189270019531">
+        <name>147014</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86705</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128974&#xA;      &#xA;      &#xA;        128976&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18747329711914" lon="11.436745643615723">
+        <name>128974</name>
+      </trkpt>
+      <trkpt lat="48.18870544433594" lon="11.437164306640625">
+        <name>128976</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87747</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129856&#xA;      &#xA;      &#xA;        130001&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15774154663086" lon="11.425199508666992">
+        <name>129856</name>
+      </trkpt>
+      <trkpt lat="48.15787124633789" lon="11.425211906433105">
+        <name>130001</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90092</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132272&#xA;      &#xA;      &#xA;        132273&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2110595703125" lon="11.300627708435059">
+        <name>132272</name>
+      </trkpt>
+      <trkpt lat="48.21050262451172" lon="11.301427841186523">
+        <name>132273</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96865</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138533&#xA;      &#xA;      &#xA;        138536&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2534294128418" lon="11.512406349182129">
+        <name>138533</name>
+      </trkpt>
+      <trkpt lat="48.25312042236328" lon="11.517091751098633">
+        <name>138536</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105201</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146754&#xA;      &#xA;      &#xA;        146755&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13761901855469" lon="11.758956909179688">
+        <name>146754</name>
+      </trkpt>
+      <trkpt lat="48.13386535644531" lon="11.759300231933594">
+        <name>146755</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85924</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128246&#xA;      &#xA;      &#xA;        128247&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17849349975586" lon="11.404114723205566">
+        <name>128246</name>
+      </trkpt>
+      <trkpt lat="48.17707443237305" lon="11.406723976135254">
+        <name>128247</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105462</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147014&#xA;      &#xA;      &#xA;        147015&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.034767150878906" lon="11.586189270019531">
+        <name>147014</name>
+      </trkpt>
+      <trkpt lat="48.034393310546875" lon="11.586200714111328">
+        <name>147015</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86706</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128975&#xA;      &#xA;      &#xA;        128977&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.187320709228516" lon="11.436917304992676">
+        <name>128975</name>
+      </trkpt>
+      <trkpt lat="48.188995361328125" lon="11.437488555908203">
+        <name>128977</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87748</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130001&#xA;      &#xA;      &#xA;        129854&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15787124633789" lon="11.425211906433105">
+        <name>130001</name>
+      </trkpt>
+      <trkpt lat="48.157962799072266" lon="11.425047874450684">
+        <name>129854</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90093</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132273&#xA;      &#xA;      &#xA;        132274&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21050262451172" lon="11.301427841186523">
+        <name>132273</name>
+      </trkpt>
+      <trkpt lat="48.21040344238281" lon="11.301998138427734">
+        <name>132274</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85925</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128247&#xA;      &#xA;      &#xA;        128248&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17707443237305" lon="11.406723976135254">
+        <name>128247</name>
+      </trkpt>
+      <trkpt lat="48.17649841308594" lon="11.407581329345703">
+        <name>128248</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105463</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147015&#xA;      &#xA;      &#xA;        147016&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.034393310546875" lon="11.586200714111328">
+        <name>147015</name>
+      </trkpt>
+      <trkpt lat="48.03435134887695" lon="11.586569786071777">
+        <name>147016</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86707</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128976&#xA;      &#xA;      &#xA;        128978&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.18870544433594" lon="11.437164306640625">
+        <name>128976</name>
+      </trkpt>
+      <trkpt lat="48.190494537353516" lon="11.437545776367188">
+        <name>128978</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87749</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129857&#xA;      &#xA;      &#xA;        130002&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15715026855469" lon="11.425485610961914">
+        <name>129857</name>
+      </trkpt>
+      <trkpt lat="48.157466888427734" lon="11.427210807800293">
+        <name>130002</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96346</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138033&#xA;      &#xA;      &#xA;        138036&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25551986694336" lon="11.304695129394531">
+        <name>138033</name>
+      </trkpt>
+      <trkpt lat="48.257041931152344" lon="11.302123069763184">
+        <name>138036</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90094</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132274&#xA;      &#xA;      &#xA;        132275&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21040344238281" lon="11.301998138427734">
+        <name>132274</name>
+      </trkpt>
+      <trkpt lat="48.21066665649414" lon="11.30255126953125">
+        <name>132275</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85926</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128248&#xA;      &#xA;      &#xA;        128249&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17649841308594" lon="11.407581329345703">
+        <name>128248</name>
+      </trkpt>
+      <trkpt lat="48.1758918762207" lon="11.40815258026123">
+        <name>128249</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105464</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147016&#xA;      &#xA;      &#xA;        147017&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03435134887695" lon="11.586569786071777">
+        <name>147016</name>
+      </trkpt>
+      <trkpt lat="48.03437423706055" lon="11.58753490447998">
+        <name>147017</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86708</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128977&#xA;      &#xA;      &#xA;        128979&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.188995361328125" lon="11.437488555908203">
+        <name>128977</name>
+      </trkpt>
+      <trkpt lat="48.19072341918945" lon="11.43775463104248">
+        <name>128979</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87750</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130002&#xA;      &#xA;      &#xA;        130003&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.157466888427734" lon="11.427210807800293">
+        <name>130002</name>
+      </trkpt>
+      <trkpt lat="48.157657623291016" lon="11.42873477935791">
+        <name>130003</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96347</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138036&#xA;      &#xA;      &#xA;        138037&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.257041931152344" lon="11.302123069763184">
+        <name>138036</name>
+      </trkpt>
+      <trkpt lat="48.2586784362793" lon="11.300095558166504">
+        <name>138037</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90095</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132275&#xA;      &#xA;      &#xA;        132276&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21066665649414" lon="11.30255126953125">
+        <name>132275</name>
+      </trkpt>
+      <trkpt lat="48.21100997924805" lon="11.30268383026123">
+        <name>132276</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96868</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138536&#xA;      &#xA;      &#xA;        138537&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25312042236328" lon="11.517091751098633">
+        <name>138536</name>
+      </trkpt>
+      <trkpt lat="48.252838134765625" lon="11.521404266357422">
+        <name>138537</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85927</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128249&#xA;      &#xA;      &#xA;        128250&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1758918762207" lon="11.40815258026123">
+        <name>128249</name>
+      </trkpt>
+      <trkpt lat="48.17540740966797" lon="11.408267974853516">
+        <name>128250</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105465</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146969&#xA;      &#xA;      &#xA;        147018&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03570556640625" lon="11.60558795928955">
+        <name>146969</name>
+      </trkpt>
+      <trkpt lat="48.0364990234375" lon="11.604201316833496">
+        <name>147018</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86709</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128978&#xA;      &#xA;      &#xA;        128980&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.190494537353516" lon="11.437545776367188">
+        <name>128978</name>
+      </trkpt>
+      <trkpt lat="48.192291259765625" lon="11.437602996826172">
+        <name>128980</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87751</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130003&#xA;      &#xA;      &#xA;        130005&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.157657623291016" lon="11.42873477935791">
+        <name>130003</name>
+      </trkpt>
+      <trkpt lat="48.157081604003906" lon="11.428582191467285">
+        <name>130005</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96348</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138037&#xA;      &#xA;      &#xA;        138038&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2586784362793" lon="11.300095558166504">
+        <name>138037</name>
+      </trkpt>
+      <trkpt lat="48.26054382324219" lon="11.298067092895508">
+        <name>138038</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90096</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132276&#xA;      &#xA;      &#xA;        132277&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21100997924805" lon="11.30268383026123">
+        <name>132276</name>
+      </trkpt>
+      <trkpt lat="48.21312713623047" lon="11.302837371826172">
+        <name>132277</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85928</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128250&#xA;      &#xA;      &#xA;        128251&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17540740966797" lon="11.408267974853516">
+        <name>128250</name>
+      </trkpt>
+      <trkpt lat="48.17402267456055" lon="11.407696723937988">
+        <name>128251</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105466</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146962&#xA;      &#xA;      &#xA;        147018&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.03549575805664" lon="11.605101585388184">
+        <name>146962</name>
+      </trkpt>
+      <trkpt lat="48.0364990234375" lon="11.604201316833496">
+        <name>147018</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86710</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128979&#xA;      &#xA;      &#xA;        128981&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19072341918945" lon="11.43775463104248">
+        <name>128979</name>
+      </trkpt>
+      <trkpt lat="48.192481994628906" lon="11.437773704528809">
+        <name>128981</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87752</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130003&#xA;      &#xA;      &#xA;        130004&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.157657623291016" lon="11.42873477935791">
+        <name>130003</name>
+      </trkpt>
+      <trkpt lat="48.15778350830078" lon="11.430315971374512">
+        <name>130004</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96349</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138038&#xA;      &#xA;      &#xA;        138054&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26054382324219" lon="11.298067092895508">
+        <name>138038</name>
+      </trkpt>
+      <trkpt lat="48.26300811767578" lon="11.295467376708984">
+        <name>138054</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90097</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132277&#xA;      &#xA;      &#xA;        132278&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21312713623047" lon="11.302837371826172">
+        <name>132277</name>
+      </trkpt>
+      <trkpt lat="48.214439392089844" lon="11.302931785583496">
+        <name>132278</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105206</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146755&#xA;      &#xA;      &#xA;        146756&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.13386535644531" lon="11.759300231933594">
+        <name>146755</name>
+      </trkpt>
+      <trkpt lat="48.131019592285156" lon="11.759414672851562">
+        <name>146756</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85929</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128251&#xA;      &#xA;      &#xA;        128252&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17402267456055" lon="11.407696723937988">
+        <name>128251</name>
+      </trkpt>
+      <trkpt lat="48.17267990112305" lon="11.407049179077148">
+        <name>128252</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105467</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147018&#xA;      &#xA;      &#xA;        147019&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.0364990234375" lon="11.604201316833496">
+        <name>147018</name>
+      </trkpt>
+      <trkpt lat="48.037872314453125" lon="11.602315902709961">
+        <name>147019</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86711</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128980&#xA;      &#xA;      &#xA;        128982&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.192291259765625" lon="11.437602996826172">
+        <name>128980</name>
+      </trkpt>
+      <trkpt lat="48.193756103515625" lon="11.437374114990234">
+        <name>128982</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87753</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130004&#xA;      &#xA;      &#xA;        130006&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15778350830078" lon="11.430315971374512">
+        <name>130004</name>
+      </trkpt>
+      <trkpt lat="48.1559944152832" lon="11.430524826049805">
+        <name>130006</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>97652</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138632&#xA;      &#xA;      &#xA;        139253&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.33926010131836" lon="11.608189582824707">
+        <name>138632</name>
+      </trkpt>
+      <trkpt lat="48.34334945678711" lon="11.605855941772461">
+        <name>139253</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96350</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138054&#xA;      &#xA;      &#xA;        138056&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26300811767578" lon="11.295467376708984">
+        <name>138054</name>
+      </trkpt>
+      <trkpt lat="48.265480041503906" lon="11.292839050292969">
+        <name>138056</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90098</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132278&#xA;      &#xA;      &#xA;        132279&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.214439392089844" lon="11.302931785583496">
+        <name>132278</name>
+      </trkpt>
+      <trkpt lat="48.21506118774414" lon="11.302741050720215">
+        <name>132279</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96871</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138537&#xA;      &#xA;      &#xA;        138538&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.252838134765625" lon="11.521404266357422">
+        <name>138537</name>
+      </trkpt>
+      <trkpt lat="48.252662658691406" lon="11.524460792541504">
+        <name>138538</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105207</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146756&#xA;      &#xA;      &#xA;        146757&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.131019592285156" lon="11.759414672851562">
+        <name>146756</name>
+      </trkpt>
+      <trkpt lat="48.12696075439453" lon="11.759300231933594">
+        <name>146757</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85930</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128252&#xA;      &#xA;      &#xA;        128253&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17267990112305" lon="11.407049179077148">
+        <name>128252</name>
+      </trkpt>
+      <trkpt lat="48.17221450805664" lon="11.406915664672852">
+        <name>128253</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105468</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147019&#xA;      &#xA;      &#xA;        147020&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.037872314453125" lon="11.602315902709961">
+        <name>147019</name>
+      </trkpt>
+      <trkpt lat="48.039955139160156" lon="11.600201606750488">
+        <name>147020</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86712</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128981&#xA;      &#xA;      &#xA;        128983&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.192481994628906" lon="11.437773704528809">
+        <name>128981</name>
+      </trkpt>
+      <trkpt lat="48.19364547729492" lon="11.437621116638184">
+        <name>128983</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87754</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130006&#xA;      &#xA;      &#xA;        130007&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1559944152832" lon="11.430524826049805">
+        <name>130006</name>
+      </trkpt>
+      <trkpt lat="48.155853271484375" lon="11.429533958435059">
+        <name>130007</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>97653</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139253&#xA;      &#xA;      &#xA;        139254&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.34334945678711" lon="11.605855941772461">
+        <name>139253</name>
+      </trkpt>
+      <trkpt lat="48.347679138183594" lon="11.60328483581543">
+        <name>139254</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96351</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138056&#xA;      &#xA;      &#xA;        138057&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.265480041503906" lon="11.292839050292969">
+        <name>138056</name>
+      </trkpt>
+      <trkpt lat="48.26829528808594" lon="11.289868354797363">
+        <name>138057</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90099</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132279&#xA;      &#xA;      &#xA;        132280&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21506118774414" lon="11.302741050720215">
+        <name>132279</name>
+      </trkpt>
+      <trkpt lat="48.21487045288086" lon="11.301732063293457">
+        <name>132280</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96872</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138538&#xA;      &#xA;      &#xA;        138539&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.252662658691406" lon="11.524460792541504">
+        <name>138538</name>
+      </trkpt>
+      <trkpt lat="48.252628326416016" lon="11.52791690826416">
+        <name>138539</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105208</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146757&#xA;      &#xA;      &#xA;        146768&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12696075439453" lon="11.759300231933594">
+        <name>146757</name>
+      </trkpt>
+      <trkpt lat="48.12382888793945" lon="11.758956909179688">
+        <name>146768</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85931</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128253&#xA;      &#xA;      &#xA;        128254&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.17221450805664" lon="11.406915664672852">
+        <name>128253</name>
+      </trkpt>
+      <trkpt lat="48.170616149902344" lon="11.4077730178833">
+        <name>128254</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105469</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147020&#xA;      &#xA;      &#xA;        147021&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.039955139160156" lon="11.600201606750488">
+        <name>147020</name>
+      </trkpt>
+      <trkpt lat="48.042266845703125" lon="11.598430633544922">
+        <name>147021</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86713</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128982&#xA;      &#xA;      &#xA;        128984&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.193756103515625" lon="11.437374114990234">
+        <name>128982</name>
+      </trkpt>
+      <trkpt lat="48.19585037231445" lon="11.436840057373047">
+        <name>128984</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87755</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130006&#xA;      &#xA;      &#xA;        130008&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1559944152832" lon="11.430524826049805">
+        <name>130006</name>
+      </trkpt>
+      <trkpt lat="48.156185150146484" lon="11.432143211364746">
+        <name>130008</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>97654</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139255&#xA;      &#xA;      &#xA;        139256&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.34762191772461" lon="11.602985382080078">
+        <name>139255</name>
+      </trkpt>
+      <trkpt lat="48.343406677246094" lon="11.60555648803711">
+        <name>139256</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90100</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132280&#xA;      &#xA;      &#xA;        132281&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21487045288086" lon="11.301732063293457">
+        <name>132280</name>
+      </trkpt>
+      <trkpt lat="48.2148551940918" lon="11.300760269165039">
+        <name>132281</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96873</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138539&#xA;      &#xA;      &#xA;        138540&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.252628326416016" lon="11.52791690826416">
+        <name>138539</name>
+      </trkpt>
+      <trkpt lat="48.25257110595703" lon="11.529831886291504">
+        <name>138540</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85932</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128254&#xA;      &#xA;      &#xA;        128255&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.170616149902344" lon="11.4077730178833">
+        <name>128254</name>
+      </trkpt>
+      <trkpt lat="48.16976547241211" lon="11.408915519714355">
+        <name>128255</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105470</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147021&#xA;      &#xA;      &#xA;        147022&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.042266845703125" lon="11.598430633544922">
+        <name>147021</name>
+      </trkpt>
+      <trkpt lat="48.04499816894531" lon="11.59705924987793">
+        <name>147022</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86714</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128983&#xA;      &#xA;      &#xA;        128985&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19364547729492" lon="11.437621116638184">
+        <name>128983</name>
+      </trkpt>
+      <trkpt lat="48.19567108154297" lon="11.437126159667969">
+        <name>128985</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87756</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130008&#xA;      &#xA;      &#xA;        130017&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.156185150146484" lon="11.432143211364746">
+        <name>130008</name>
+      </trkpt>
+      <trkpt lat="48.15703201293945" lon="11.431781768798828">
+        <name>130017</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>97655</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139256&#xA;      &#xA;      &#xA;        138633&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.343406677246094" lon="11.60555648803711">
+        <name>139256</name>
+      </trkpt>
+      <trkpt lat="48.339447021484375" lon="11.607789993286133">
+        <name>138633</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90101</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132281&#xA;      &#xA;      &#xA;        132282&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2148551940918" lon="11.300760269165039">
+        <name>132281</name>
+      </trkpt>
+      <trkpt lat="48.214935302734375" lon="11.299294471740723">
+        <name>132282</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96874</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138540&#xA;      &#xA;      &#xA;        138541&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25257110595703" lon="11.529831886291504">
+        <name>138540</name>
+      </trkpt>
+      <trkpt lat="48.252437591552734" lon="11.532059669494629">
+        <name>138541</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85933</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128255&#xA;      &#xA;      &#xA;        128256&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16976547241211" lon="11.408915519714355">
+        <name>128255</name>
+      </trkpt>
+      <trkpt lat="48.1685791015625" lon="11.410266876220703">
+        <name>128256</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105471</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147022&#xA;      &#xA;      &#xA;        147023&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.04499816894531" lon="11.59705924987793">
+        <name>147022</name>
+      </trkpt>
+      <trkpt lat="48.04776382446289" lon="11.596087455749512">
+        <name>147023</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86715</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128984&#xA;      &#xA;      &#xA;        128986&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19585037231445" lon="11.436840057373047">
+        <name>128984</name>
+      </trkpt>
+      <trkpt lat="48.197635650634766" lon="11.436440467834473">
+        <name>128986</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87757</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130008&#xA;      &#xA;      &#xA;        130009&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.156185150146484" lon="11.432143211364746">
+        <name>130008</name>
+      </trkpt>
+      <trkpt lat="48.155662536621094" lon="11.432219505310059">
+        <name>130009</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>97656</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139254&#xA;      &#xA;      &#xA;        139257&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.347679138183594" lon="11.60328483581543">
+        <name>139254</name>
+      </trkpt>
+      <trkpt lat="48.352149963378906" lon="11.600584983825684">
+        <name>139257</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90102</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132282&#xA;      &#xA;      &#xA;        132283&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.214935302734375" lon="11.299294471740723">
+        <name>132282</name>
+      </trkpt>
+      <trkpt lat="48.214969635009766" lon="11.297504425048828">
+        <name>132283</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96875</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138541&#xA;      &#xA;      &#xA;        138542&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.252437591552734" lon="11.532059669494629">
+        <name>138541</name>
+      </trkpt>
+      <trkpt lat="48.252323150634766" lon="11.533859252929688">
+        <name>138542</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105211</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146768&#xA;      &#xA;      &#xA;        146769&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.12382888793945" lon="11.758956909179688">
+        <name>146768</name>
+      </trkpt>
+      <trkpt lat="48.120094299316406" lon="11.758414268493652">
+        <name>146769</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85934</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128256&#xA;      &#xA;      &#xA;        128257&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1685791015625" lon="11.410266876220703">
+        <name>128256</name>
+      </trkpt>
+      <trkpt lat="48.16736602783203" lon="11.411163330078125">
+        <name>128257</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105472</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147023&#xA;      &#xA;      &#xA;        147024&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.04776382446289" lon="11.596087455749512">
+        <name>147023</name>
+      </trkpt>
+      <trkpt lat="48.050838470458984" lon="11.595316886901855">
+        <name>147024</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86716</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128985&#xA;      &#xA;      &#xA;        128987&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19567108154297" lon="11.437126159667969">
+        <name>128985</name>
+      </trkpt>
+      <trkpt lat="48.19767761230469" lon="11.43670654296875">
+        <name>128987</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87758</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130009&#xA;      &#xA;      &#xA;        130010&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155662536621094" lon="11.432219505310059">
+        <name>130009</name>
+      </trkpt>
+      <trkpt lat="48.155521392822266" lon="11.43220043182373">
+        <name>130010</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>97657</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139257&#xA;      &#xA;      &#xA;        139258&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.352149963378906" lon="11.600584983825684">
+        <name>139257</name>
+      </trkpt>
+      <trkpt lat="48.357669830322266" lon="11.597329139709473">
+        <name>139258</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90103</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132283&#xA;      &#xA;      &#xA;        132284&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.214969635009766" lon="11.297504425048828">
+        <name>132283</name>
+      </trkpt>
+      <trkpt lat="48.21534729003906" lon="11.297447204589844">
+        <name>132284</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96876</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138542&#xA;      &#xA;      &#xA;        138543&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.252323150634766" lon="11.533859252929688">
+        <name>138542</name>
+      </trkpt>
+      <trkpt lat="48.25226593017578" lon="11.534402847290039">
+        <name>138543</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85935</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128257&#xA;      &#xA;      &#xA;        128258&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16736602783203" lon="11.411163330078125">
+        <name>128257</name>
+      </trkpt>
+      <trkpt lat="48.166194915771484" lon="11.412018775939941">
+        <name>128258</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105473</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147024&#xA;      &#xA;      &#xA;        147025&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.050838470458984" lon="11.595316886901855">
+        <name>147024</name>
+      </trkpt>
+      <trkpt lat="48.05364990234375" lon="11.594917297363281">
+        <name>147025</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86717</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128987&#xA;      &#xA;      &#xA;        128988&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.19767761230469" lon="11.43670654296875">
+        <name>128987</name>
+      </trkpt>
+      <trkpt lat="48.199134826660156" lon="11.436782836914062">
+        <name>128988</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87759</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130010&#xA;      &#xA;      &#xA;        130011&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155521392822266" lon="11.43220043182373">
+        <name>130010</name>
+      </trkpt>
+      <trkpt lat="48.15536880493164" lon="11.431000709533691">
+        <name>130011</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>97658</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139259&#xA;      &#xA;      &#xA;        139260&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.3575325012207" lon="11.597029685974121">
+        <name>139259</name>
+      </trkpt>
+      <trkpt lat="48.35186004638672" lon="11.600414276123047">
+        <name>139260</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90104</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132284&#xA;      &#xA;      &#xA;        132285&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21534729003906" lon="11.297447204589844">
+        <name>132284</name>
+      </trkpt>
+      <trkpt lat="48.215614318847656" lon="11.298247337341309">
+        <name>132285</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96877</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138543&#xA;      &#xA;      &#xA;        138544&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25226593017578" lon="11.534402847290039">
+        <name>138543</name>
+      </trkpt>
+      <trkpt lat="48.25270462036133" lon="11.534516334533691">
+        <name>138544</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85936</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128258&#xA;      &#xA;      &#xA;        128259&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.166194915771484" lon="11.412018775939941">
+        <name>128258</name>
+      </trkpt>
+      <trkpt lat="48.16596603393555" lon="11.41179084777832">
+        <name>128259</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105474</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147025&#xA;      &#xA;      &#xA;        147026&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.05364990234375" lon="11.594917297363281">
+        <name>147025</name>
+      </trkpt>
+      <trkpt lat="48.05580520629883" lon="11.594745635986328">
+        <name>147026</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86718</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128988&#xA;      &#xA;      &#xA;        128989&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.199134826660156" lon="11.436782836914062">
+        <name>128988</name>
+      </trkpt>
+      <trkpt lat="48.200531005859375" lon="11.437392234802246">
+        <name>128989</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87760</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130011&#xA;      &#xA;      &#xA;        130012&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15536880493164" lon="11.431000709533691">
+        <name>130011</name>
+      </trkpt>
+      <trkpt lat="48.155242919921875" lon="11.430867195129395">
+        <name>130012</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>97659</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139260&#xA;      &#xA;      &#xA;        139255&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.35186004638672" lon="11.600414276123047">
+        <name>139260</name>
+      </trkpt>
+      <trkpt lat="48.34762191772461" lon="11.602985382080078">
+        <name>139255</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90105</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132285&#xA;      &#xA;      &#xA;        132286&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.215614318847656" lon="11.298247337341309">
+        <name>132285</name>
+      </trkpt>
+      <trkpt lat="48.21683120727539" lon="11.298018455505371">
+        <name>132286</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96878</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138544&#xA;      &#xA;      &#xA;        138545&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25270462036133" lon="11.534516334533691">
+        <name>138544</name>
+      </trkpt>
+      <trkpt lat="48.253047943115234" lon="11.534402847290039">
+        <name>138545</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85937</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128259&#xA;      &#xA;      &#xA;        128260&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16596603393555" lon="11.41179084777832">
+        <name>128259</name>
+      </trkpt>
+      <trkpt lat="48.165382385253906" lon="11.411848068237305">
+        <name>128260</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105475</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147026&#xA;      &#xA;      &#xA;        147027&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.05580520629883" lon="11.594745635986328">
+        <name>147026</name>
+      </trkpt>
+      <trkpt lat="48.058780670166016" lon="11.594860076904297">
+        <name>147027</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86719</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128989&#xA;      &#xA;      &#xA;        128990&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.200531005859375" lon="11.437392234802246">
+        <name>128989</name>
+      </trkpt>
+      <trkpt lat="48.20178985595703" lon="11.438440322875977">
+        <name>128990</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87761</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130012&#xA;      &#xA;      &#xA;        130013&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155242919921875" lon="11.430867195129395">
+        <name>130012</name>
+      </trkpt>
+      <trkpt lat="48.154937744140625" lon="11.430867195129395">
+        <name>130013</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>97660</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139258&#xA;      &#xA;      &#xA;        139261&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.357669830322266" lon="11.597329139709473">
+        <name>139258</name>
+      </trkpt>
+      <trkpt lat="48.36014938354492" lon="11.596000671386719">
+        <name>139261</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90106</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132286&#xA;      &#xA;      &#xA;        132287&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21683120727539" lon="11.298018455505371">
+        <name>132286</name>
+      </trkpt>
+      <trkpt lat="48.21670150756836" lon="11.297123908996582">
+        <name>132287</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96879</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138545&#xA;      &#xA;      &#xA;        138546&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.253047943115234" lon="11.534402847290039">
+        <name>138545</name>
+      </trkpt>
+      <trkpt lat="48.2534065246582" lon="11.53363037109375">
+        <name>138546</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85938</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128260&#xA;      &#xA;      &#xA;        128261&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.165382385253906" lon="11.411848068237305">
+        <name>128260</name>
+      </trkpt>
+      <trkpt lat="48.165409088134766" lon="11.412210464477539">
+        <name>128261</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105476</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147027&#xA;      &#xA;      &#xA;        147028&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.058780670166016" lon="11.594860076904297">
+        <name>147027</name>
+      </trkpt>
+      <trkpt lat="48.06252670288086" lon="11.59537410736084">
+        <name>147028</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86720</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128986&#xA;      &#xA;      &#xA;        128991&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.197635650634766" lon="11.436440467834473">
+        <name>128986</name>
+      </trkpt>
+      <trkpt lat="48.199188232421875" lon="11.436497688293457">
+        <name>128991</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87762</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130013&#xA;      &#xA;      &#xA;        130014&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.154937744140625" lon="11.430867195129395">
+        <name>130013</name>
+      </trkpt>
+      <trkpt lat="48.15498352050781" lon="11.43012523651123">
+        <name>130014</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>97661</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139261&#xA;      &#xA;      &#xA;        139262&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.36014938354492" lon="11.596000671386719">
+        <name>139261</name>
+      </trkpt>
+      <trkpt lat="48.36279296875" lon="11.595230102539062">
+        <name>139262</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90107</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132287&#xA;      &#xA;      &#xA;        132284&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.21670150756836" lon="11.297123908996582">
+        <name>132287</name>
+      </trkpt>
+      <trkpt lat="48.21534729003906" lon="11.297447204589844">
+        <name>132284</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96880</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129097&#xA;      &#xA;      &#xA;        138548&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25324630737305" lon="11.532938957214355">
+        <name>129097</name>
+      </trkpt>
+      <trkpt lat="48.25407028198242" lon="11.533059120178223">
+        <name>138548</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85939</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128261&#xA;      &#xA;      &#xA;        128262&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.165409088134766" lon="11.412210464477539">
+        <name>128261</name>
+      </trkpt>
+      <trkpt lat="48.165409088134766" lon="11.4125337600708">
+        <name>128262</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105477</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147028&#xA;      &#xA;      &#xA;        147029&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.06252670288086" lon="11.59537410736084">
+        <name>147028</name>
+      </trkpt>
+      <trkpt lat="48.06533432006836" lon="11.596059799194336">
+        <name>147029</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86721</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128991&#xA;      &#xA;      &#xA;        128992&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.199188232421875" lon="11.436497688293457">
+        <name>128991</name>
+      </trkpt>
+      <trkpt lat="48.20064926147461" lon="11.437145233154297">
+        <name>128992</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87763</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130013&#xA;      &#xA;      &#xA;        130015&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.154937744140625" lon="11.430867195129395">
+        <name>130013</name>
+      </trkpt>
+      <trkpt lat="48.15481948852539" lon="11.432182312011719">
+        <name>130015</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>97662</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139262&#xA;      &#xA;      &#xA;        139263&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.36279296875" lon="11.595230102539062">
+        <name>139262</name>
+      </trkpt>
+      <trkpt lat="48.3676643371582" lon="11.5954008102417">
+        <name>139263</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90108</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130100&#xA;      &#xA;      &#xA;        132288&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23419189453125" lon="11.34939193725586">
+        <name>130100</name>
+      </trkpt>
+      <trkpt lat="48.23488235473633" lon="11.350836753845215">
+        <name>132288</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96881</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138549&#xA;      &#xA;      &#xA;        138547&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25407028198242" lon="11.533059120178223">
+        <name>138548</name>
+      </trkpt>
+      <trkpt lat="48.25620651245117" lon="11.53354549407959">
+        <name>138547</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85940</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128262&#xA;      &#xA;      &#xA;        128263&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.165409088134766" lon="11.4125337600708">
+        <name>128262</name>
+      </trkpt>
+      <trkpt lat="48.164371490478516" lon="11.41325855255127">
+        <name>128263</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105478</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147029&#xA;      &#xA;      &#xA;        147030&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.06533432006836" lon="11.596059799194336">
+        <name>147029</name>
+      </trkpt>
+      <trkpt lat="48.06890869140625" lon="11.597116470336914">
+        <name>147030</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86722</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128992&#xA;      &#xA;      &#xA;        128993&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20064926147461" lon="11.437145233154297">
+        <name>128992</name>
+      </trkpt>
+      <trkpt lat="48.20195770263672" lon="11.438268661499023">
+        <name>128993</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87764</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130015&#xA;      &#xA;      &#xA;        130010&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15481948852539" lon="11.432182312011719">
+        <name>130015</name>
+      </trkpt>
+      <trkpt lat="48.155521392822266" lon="11.43220043182373">
+        <name>130010</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>97663</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139264&#xA;      &#xA;      &#xA;        139265&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.3676643371582" lon="11.59514331817627">
+        <name>139264</name>
+      </trkpt>
+      <trkpt lat="48.36279296875" lon="11.594929695129395">
+        <name>139265</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90109</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132288&#xA;      &#xA;      &#xA;        132289&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23488235473633" lon="11.350836753845215">
+        <name>132288</name>
+      </trkpt>
+      <trkpt lat="48.235652923583984" lon="11.35237979888916">
+        <name>132289</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96882</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138547&#xA;      &#xA;      &#xA;        129101&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25620651245117" lon="11.53354549407959">
+        <name>138547</name>
+      </trkpt>
+      <trkpt lat="48.259613037109375" lon="11.534852981567383">
+        <name>129101</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85941</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128263&#xA;      &#xA;      &#xA;        128264&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.164371490478516" lon="11.41325855255127">
+        <name>128263</name>
+      </trkpt>
+      <trkpt lat="48.163360595703125" lon="11.4137544631958">
+        <name>128264</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105479</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147030&#xA;      &#xA;      &#xA;        147031&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.06890869140625" lon="11.597116470336914">
+        <name>147030</name>
+      </trkpt>
+      <trkpt lat="48.07133483886719" lon="11.597687721252441">
+        <name>147031</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86723</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128990&#xA;      &#xA;      &#xA;        128994&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20178985595703" lon="11.438440322875977">
+        <name>128990</name>
+      </trkpt>
+      <trkpt lat="48.202857971191406" lon="11.439945220947266">
+        <name>128994</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87765</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130015&#xA;      &#xA;      &#xA;        130016&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15481948852539" lon="11.432182312011719">
+        <name>130015</name>
+      </trkpt>
+      <trkpt lat="48.154693603515625" lon="11.433305740356445">
+        <name>130016</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>97664</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139265&#xA;      &#xA;      &#xA;        139266&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.36279296875" lon="11.594929695129395">
+        <name>139265</name>
+      </trkpt>
+      <trkpt lat="48.36006164550781" lon="11.595701217651367">
+        <name>139266</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90110</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132289&#xA;      &#xA;      &#xA;        132290&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.235652923583984" lon="11.35237979888916">
+        <name>132289</name>
+      </trkpt>
+      <trkpt lat="48.23653793334961" lon="11.35439395904541">
+        <name>132290</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96883</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138549&#xA;      &#xA;      &#xA;        138550&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25407028198242" lon="11.533059120178223">
+        <name>138548</name>
+      </trkpt>
+      <trkpt lat="48.25366973876953" lon="11.533230781555176">
+        <name>138550</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85942</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128264&#xA;      &#xA;      &#xA;        128265&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.163360595703125" lon="11.4137544631958">
+        <name>128264</name>
+      </trkpt>
+      <trkpt lat="48.16254806518555" lon="11.413848876953125">
+        <name>128265</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105480</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147031&#xA;      &#xA;      &#xA;        147032&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.07133483886719" lon="11.597687721252441">
+        <name>147031</name>
+      </trkpt>
+      <trkpt lat="48.07368469238281" lon="11.597944259643555">
+        <name>147032</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86724</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128994&#xA;      &#xA;      &#xA;        128995&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.202857971191406" lon="11.439945220947266">
+        <name>128994</name>
+      </trkpt>
+      <trkpt lat="48.20366668701172" lon="11.441774368286133">
+        <name>128995</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87766</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130016&#xA;      &#xA;      &#xA;        130023&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.154693603515625" lon="11.433305740356445">
+        <name>130016</name>
+      </trkpt>
+      <trkpt lat="48.15459060668945" lon="11.43441104888916">
+        <name>130023</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>97665</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139266&#xA;      &#xA;      &#xA;        139259&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.36006164550781" lon="11.595701217651367">
+        <name>139266</name>
+      </trkpt>
+      <trkpt lat="48.3575325012207" lon="11.597029685974121">
+        <name>139259</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90111</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132290&#xA;      &#xA;      &#xA;        132291&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23653793334961" lon="11.35439395904541">
+        <name>132290</name>
+      </trkpt>
+      <trkpt lat="48.2373161315918" lon="11.356379508972168">
+        <name>132291</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96884</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138550&#xA;      &#xA;      &#xA;        138546&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.25366973876953" lon="11.533230781555176">
+        <name>138550</name>
+      </trkpt>
+      <trkpt lat="48.2534065246582" lon="11.53363037109375">
+        <name>138546</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105220</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146769&#xA;      &#xA;      &#xA;        146770&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.120094299316406" lon="11.758414268493652">
+        <name>146769</name>
+      </trkpt>
+      <trkpt lat="48.11668014526367" lon="11.757728576660156">
+        <name>146770</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105481</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147032&#xA;      &#xA;      &#xA;        147033&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.07368469238281" lon="11.597944259643555">
+        <name>147032</name>
+      </trkpt>
+      <trkpt lat="48.07614517211914" lon="11.597772598266602">
+        <name>147033</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86725</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128995&#xA;      &#xA;      &#xA;        128996&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20366668701172" lon="11.441774368286133">
+        <name>128995</name>
+      </trkpt>
+      <trkpt lat="48.2041130065918" lon="11.443658828735352">
+        <name>128996</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87767</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130023&#xA;      &#xA;      &#xA;        130024&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15459060668945" lon="11.43441104888916">
+        <name>130023</name>
+      </trkpt>
+      <trkpt lat="48.15464782714844" lon="11.435458183288574">
+        <name>130024</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>97666</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139263&#xA;      &#xA;      &#xA;        139267&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.3676643371582" lon="11.5954008102417">
+        <name>139263</name>
+      </trkpt>
+      <trkpt lat="48.373756408691406" lon="11.596129417419434">
+        <name>139267</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90112</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132291&#xA;      &#xA;      &#xA;        132292&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2373161315918" lon="11.356379508972168">
+        <name>132291</name>
+      </trkpt>
+      <trkpt lat="48.23818588256836" lon="11.359378814697266">
+        <name>132292</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96885</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129141&#xA;      &#xA;      &#xA;        138551&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31064987182617" lon="11.609210014343262">
+        <name>129141</name>
+      </trkpt>
+      <trkpt lat="48.31340026855469" lon="11.615214347839355">
+        <name>138551</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105221</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146770&#xA;      &#xA;      &#xA;        146771&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11668014526367" lon="11.757728576660156">
+        <name>146770</name>
+      </trkpt>
+      <trkpt lat="48.11343765258789" lon="11.7568998336792">
+        <name>146771</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105482</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147033&#xA;      &#xA;      &#xA;        147034&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.07614517211914" lon="11.597772598266602">
+        <name>147033</name>
+      </trkpt>
+      <trkpt lat="48.07892608642578" lon="11.597173690795898">
+        <name>147034</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86726</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128996&#xA;      &#xA;      &#xA;        128997&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2041130065918" lon="11.443658828735352">
+        <name>128996</name>
+      </trkpt>
+      <trkpt lat="48.20431137084961" lon="11.445525169372559">
+        <name>128997</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87768</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130024&#xA;      &#xA;      &#xA;        130025&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15464782714844" lon="11.435458183288574">
+        <name>130024</name>
+      </trkpt>
+      <trkpt lat="48.15492248535156" lon="11.435439109802246">
+        <name>130025</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>97667</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139268&#xA;      &#xA;      &#xA;        139264&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.373756408691406" lon="11.595786094665527">
+        <name>139268</name>
+      </trkpt>
+      <trkpt lat="48.3676643371582" lon="11.59514331817627">
+        <name>139264</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90113</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132292&#xA;      &#xA;      &#xA;        132293&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23818588256836" lon="11.359378814697266">
+        <name>132292</name>
+      </trkpt>
+      <trkpt lat="48.2391242980957" lon="11.363492012023926">
+        <name>132293</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96886</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138551&#xA;      &#xA;      &#xA;        138552&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31340026855469" lon="11.615214347839355">
+        <name>138551</name>
+      </trkpt>
+      <trkpt lat="48.31473159790039" lon="11.61795711517334">
+        <name>138552</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105222</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146771&#xA;      &#xA;      &#xA;        146772&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11343765258789" lon="11.7568998336792">
+        <name>146771</name>
+      </trkpt>
+      <trkpt lat="48.11088180541992" lon="11.756157875061035">
+        <name>146772</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85945</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128267&#xA;      &#xA;      &#xA;        128268&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16178512573242" lon="11.414077758789062">
+        <name>128267</name>
+      </trkpt>
+      <trkpt lat="48.16078186035156" lon="11.414229393005371">
+        <name>128268</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105483</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147034&#xA;      &#xA;      &#xA;        147035&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.07892608642578" lon="11.597173690795898">
+        <name>147034</name>
+      </trkpt>
+      <trkpt lat="48.08163833618164" lon="11.596002578735352">
+        <name>147035</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86727</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128993&#xA;      &#xA;      &#xA;        128998&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20195770263672" lon="11.438268661499023">
+        <name>128993</name>
+      </trkpt>
+      <trkpt lat="48.20302200317383" lon="11.439850807189941">
+        <name>128998</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87769</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130025&#xA;      &#xA;      &#xA;        130026&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15492248535156" lon="11.435439109802246">
+        <name>130025</name>
+      </trkpt>
+      <trkpt lat="48.15497589111328" lon="11.43635368347168">
+        <name>130026</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>97668</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139267&#xA;      &#xA;      &#xA;        139269&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.373756408691406" lon="11.596129417419434">
+        <name>139267</name>
+      </trkpt>
+      <trkpt lat="48.379051208496094" lon="11.596686363220215">
+        <name>139269</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90114</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132293&#xA;      &#xA;      &#xA;        132294&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2391242980957" lon="11.363492012023926">
+        <name>132293</name>
+      </trkpt>
+      <trkpt lat="48.2396354675293" lon="11.366806030273438">
+        <name>132294</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96887</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138552&#xA;      &#xA;      &#xA;        138553&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31473159790039" lon="11.61795711517334">
+        <name>138552</name>
+      </trkpt>
+      <trkpt lat="48.31557083129883" lon="11.619699478149414">
+        <name>138553</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105223</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146772&#xA;      &#xA;      &#xA;        146773&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11088180541992" lon="11.756157875061035">
+        <name>146772</name>
+      </trkpt>
+      <trkpt lat="48.107391357421875" lon="11.754786491394043">
+        <name>146773</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85946</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128268&#xA;      &#xA;      &#xA;        128269&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16078186035156" lon="11.414229393005371">
+        <name>128268</name>
+      </trkpt>
+      <trkpt lat="48.16022491455078" lon="11.414629936218262">
+        <name>128269</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105484</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147035&#xA;      &#xA;      &#xA;        147036&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.08163833618164" lon="11.596002578735352">
+        <name>147035</name>
+      </trkpt>
+      <trkpt lat="48.08509063720703" lon="11.59403133392334">
+        <name>147036</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86728</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128998&#xA;      &#xA;      &#xA;        128999&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20302200317383" lon="11.439850807189941">
+        <name>128998</name>
+      </trkpt>
+      <trkpt lat="48.2038459777832" lon="11.441754341125488">
+        <name>128999</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87770</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130026&#xA;      &#xA;      &#xA;        130027&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15497589111328" lon="11.43635368347168">
+        <name>130026</name>
+      </trkpt>
+      <trkpt lat="48.154911041259766" lon="11.436753273010254">
+        <name>130027</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>97669</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139269&#xA;      &#xA;      &#xA;        139270&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.379051208496094" lon="11.596686363220215">
+        <name>139269</name>
+      </trkpt>
+      <trkpt lat="48.38302993774414" lon="11.59715747833252">
+        <name>139270</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90115</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132294&#xA;      &#xA;      &#xA;        132295&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2396354675293" lon="11.366806030273438">
+        <name>132294</name>
+      </trkpt>
+      <trkpt lat="48.240013122558594" lon="11.369776725769043">
+        <name>132295</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96888</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138553&#xA;      &#xA;      &#xA;        138554&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31557083129883" lon="11.619699478149414">
+        <name>138553</name>
+      </trkpt>
+      <trkpt lat="48.316444396972656" lon="11.621499061584473">
+        <name>138554</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105224</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146773&#xA;      &#xA;      &#xA;        146774&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.107391357421875" lon="11.754786491394043">
+        <name>146773</name>
+      </trkpt>
+      <trkpt lat="48.10439682006836" lon="11.753558158874512">
+        <name>146774</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85947</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128269&#xA;      &#xA;      &#xA;        128270&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.16022491455078" lon="11.414629936218262">
+        <name>128269</name>
+      </trkpt>
+      <trkpt lat="48.15998077392578" lon="11.415048599243164">
+        <name>128270</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105485</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147036&#xA;      &#xA;      &#xA;        147037&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.08509063720703" lon="11.59403133392334">
+        <name>147036</name>
+      </trkpt>
+      <trkpt lat="48.089500427246094" lon="11.591374397277832">
+        <name>147037</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86729</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128999&#xA;      &#xA;      &#xA;        129000&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2038459777832" lon="11.441754341125488">
+        <name>128999</name>
+      </trkpt>
+      <trkpt lat="48.20424270629883" lon="11.443469047546387">
+        <name>129000</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87771</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130027&#xA;      &#xA;      &#xA;        130028&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.154911041259766" lon="11.436753273010254">
+        <name>130027</name>
+      </trkpt>
+      <trkpt lat="48.15473175048828" lon="11.436982154846191">
+        <name>130028</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>97670</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139271&#xA;      &#xA;      &#xA;        139272&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.38302993774414" lon="11.59681510925293">
+        <name>139271</name>
+      </trkpt>
+      <trkpt lat="48.378910064697266" lon="11.596301078796387">
+        <name>139272</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90116</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132295&#xA;      &#xA;      &#xA;        132296&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.240013122558594" lon="11.369776725769043">
+        <name>132295</name>
+      </trkpt>
+      <trkpt lat="48.240264892578125" lon="11.373205184936523">
+        <name>132296</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96889</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138554&#xA;      &#xA;      &#xA;        138555&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.316444396972656" lon="11.621499061584473">
+        <name>138554</name>
+      </trkpt>
+      <trkpt lat="48.31668472290039" lon="11.622385025024414">
+        <name>138555</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105225</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146774&#xA;      &#xA;      &#xA;        146775&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.10439682006836" lon="11.753558158874512">
+        <name>146774</name>
+      </trkpt>
+      <trkpt lat="48.10102081298828" lon="11.75184440612793">
+        <name>146775</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85948</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128270&#xA;      &#xA;      &#xA;        128271&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15998077392578" lon="11.415048599243164">
+        <name>128270</name>
+      </trkpt>
+      <trkpt lat="48.15922927856445" lon="11.415238380432129">
+        <name>128271</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96368</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138057&#xA;      &#xA;      &#xA;        138063&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.26829528808594" lon="11.289868354797363">
+        <name>138057</name>
+      </trkpt>
+      <trkpt lat="48.27043533325195" lon="11.287697792053223">
+        <name>138063</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105486</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147037&#xA;      &#xA;      &#xA;        147038&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.089500427246094" lon="11.591374397277832">
+        <name>147037</name>
+      </trkpt>
+      <trkpt lat="48.09323501586914" lon="11.589033126831055">
+        <name>147038</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86730</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129000&#xA;      &#xA;      &#xA;        129001&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20424270629883" lon="11.443469047546387">
+        <name>129000</name>
+      </trkpt>
+      <trkpt lat="48.204429626464844" lon="11.445259094238281">
+        <name>129001</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87772</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130028&#xA;      &#xA;      &#xA;        130029&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15473175048828" lon="11.436982154846191">
+        <name>130028</name>
+      </trkpt>
+      <trkpt lat="48.15450668334961" lon="11.436943054199219">
+        <name>130029</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>97671</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        139272&#xA;      &#xA;      &#xA;        139268&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.378910064697266" lon="11.596301078796387">
+        <name>139272</name>
+      </trkpt>
+      <trkpt lat="48.373756408691406" lon="11.595786094665527">
+        <name>139268</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90117</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132296&#xA;      &#xA;      &#xA;        132297&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.240264892578125" lon="11.373205184936523">
+        <name>132296</name>
+      </trkpt>
+      <trkpt lat="48.240264892578125" lon="11.377461433410645">
+        <name>132297</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96890</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138555&#xA;      &#xA;      &#xA;        138556&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31668472290039" lon="11.622385025024414">
+        <name>138555</name>
+      </trkpt>
+      <trkpt lat="48.316444396972656" lon="11.623127937316895">
+        <name>138556</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105226</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146775&#xA;      &#xA;      &#xA;        146776&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.10102081298828" lon="11.75184440612793">
+        <name>146775</name>
+      </trkpt>
+      <trkpt lat="48.097740173339844" lon="11.750015258789062">
+        <name>146776</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85949</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128271&#xA;      &#xA;      &#xA;        128272&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15922927856445" lon="11.415238380432129">
+        <name>128271</name>
+      </trkpt>
+      <trkpt lat="48.15910339355469" lon="11.415334701538086">
+        <name>128272</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105487</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147038&#xA;      &#xA;      &#xA;        147039&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.09323501586914" lon="11.589033126831055">
+        <name>147038</name>
+      </trkpt>
+      <trkpt lat="48.09632873535156" lon="11.587119102478027">
+        <name>147039</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86731</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128997&#xA;      &#xA;      &#xA;        129002&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20431137084961" lon="11.445525169372559">
+        <name>128997</name>
+      </trkpt>
+      <trkpt lat="48.204376220703125" lon="11.448440551757812">
+        <name>129002</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87773</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130029&#xA;      &#xA;      &#xA;        130030&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15450668334961" lon="11.436943054199219">
+        <name>130029</name>
+      </trkpt>
+      <trkpt lat="48.15450668334961" lon="11.4371337890625">
+        <name>130030</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90118</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132297&#xA;      &#xA;      &#xA;        132298&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.240264892578125" lon="11.377461433410645">
+        <name>132297</name>
+      </trkpt>
+      <trkpt lat="48.240013122558594" lon="11.380974769592285">
+        <name>132298</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96891</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138556&#xA;      &#xA;      &#xA;        138557&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.316444396972656" lon="11.623127937316895">
+        <name>138556</name>
+      </trkpt>
+      <trkpt lat="48.3159294128418" lon="11.623242378234863">
+        <name>138557</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105227</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146776&#xA;      &#xA;      &#xA;        146777&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.097740173339844" lon="11.750015258789062">
+        <name>146776</name>
+      </trkpt>
+      <trkpt lat="48.09516143798828" lon="11.748444557189941">
+        <name>146777</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96370</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138063&#xA;      &#xA;      &#xA;        138064&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.27043533325195" lon="11.287697792053223">
+        <name>138063</name>
+      </trkpt>
+      <trkpt lat="48.272605895996094" lon="11.285411834716797">
+        <name>138064</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105488</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147039&#xA;      &#xA;      &#xA;        147040&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.09632873535156" lon="11.587119102478027">
+        <name>147039</name>
+      </trkpt>
+      <trkpt lat="48.0991096496582" lon="11.585604667663574">
+        <name>147040</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86732</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129002&#xA;      &#xA;      &#xA;        129003&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.204376220703125" lon="11.448440551757812">
+        <name>129002</name>
+      </trkpt>
+      <trkpt lat="48.204437255859375" lon="11.451411247253418">
+        <name>129003</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87774</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130030&#xA;      &#xA;      &#xA;        130028&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15450668334961" lon="11.4371337890625">
+        <name>130030</name>
+      </trkpt>
+      <trkpt lat="48.15473175048828" lon="11.436982154846191">
+        <name>130028</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90119</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132298&#xA;      &#xA;      &#xA;        132299&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.240013122558594" lon="11.380974769592285">
+        <name>132298</name>
+      </trkpt>
+      <trkpt lat="48.239463806152344" lon="11.384860038757324">
+        <name>132299</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96892</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138557&#xA;      &#xA;      &#xA;        138558&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.3159294128418" lon="11.623242378234863">
+        <name>138557</name>
+      </trkpt>
+      <trkpt lat="48.31558609008789" lon="11.622842788696289">
+        <name>138558</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105228</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146777&#xA;      &#xA;      &#xA;        146778&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.09516143798828" lon="11.748444557189941">
+        <name>146777</name>
+      </trkpt>
+      <trkpt lat="48.09287643432617" lon="11.746931076049805">
+        <name>146778</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96371</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138064&#xA;      &#xA;      &#xA;        138065&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.272605895996094" lon="11.285411834716797">
+        <name>138064</name>
+      </trkpt>
+      <trkpt lat="48.27395248413086" lon="11.283726692199707">
+        <name>138065</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105489</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147040&#xA;      &#xA;      &#xA;        147041&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.0991096496582" lon="11.585604667663574">
+        <name>147040</name>
+      </trkpt>
+      <trkpt lat="48.10231399536133" lon="11.583576202392578">
+        <name>147041</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86733</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129001&#xA;      &#xA;      &#xA;        129004&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.204429626464844" lon="11.445259094238281">
+        <name>129001</name>
+      </trkpt>
+      <trkpt lat="48.204532623291016" lon="11.448458671569824">
+        <name>129004</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87775</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130025&#xA;      &#xA;      &#xA;        130020&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15492248535156" lon="11.435439109802246">
+        <name>130025</name>
+      </trkpt>
+      <trkpt lat="48.15591812133789" lon="11.435287475585938">
+        <name>130020</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90120</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132299&#xA;      &#xA;      &#xA;        132300&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.239463806152344" lon="11.384860038757324">
+        <name>132299</name>
+      </trkpt>
+      <trkpt lat="48.23891067504883" lon="11.387601852416992">
+        <name>132300</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96893</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138558&#xA;      &#xA;      &#xA;        138559&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31558609008789" lon="11.622842788696289">
+        <name>138558</name>
+      </trkpt>
+      <trkpt lat="48.31550979614258" lon="11.622157096862793">
+        <name>138559</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105229</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146778&#xA;      &#xA;      &#xA;        146783&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.09287643432617" lon="11.746931076049805">
+        <name>146778</name>
+      </trkpt>
+      <trkpt lat="48.09009552001953" lon="11.744902610778809">
+        <name>146783</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85952</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128274&#xA;      &#xA;      &#xA;        128275&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15804672241211" lon="11.415238380432129">
+        <name>128274</name>
+      </trkpt>
+      <trkpt lat="48.1573371887207" lon="11.415735244750977">
+        <name>128275</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96372</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138065&#xA;      &#xA;      &#xA;        138066&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.27395248413086" lon="11.283726692199707">
+        <name>138065</name>
+      </trkpt>
+      <trkpt lat="48.275150299072266" lon="11.281842231750488">
+        <name>138066</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105490</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147041&#xA;      &#xA;      &#xA;        147042&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.10231399536133" lon="11.583576202392578">
+        <name>147041</name>
+      </trkpt>
+      <trkpt lat="48.10460662841797" lon="11.582091331481934">
+        <name>147042</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86734</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129004&#xA;      &#xA;      &#xA;        129005&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.204532623291016" lon="11.448458671569824">
+        <name>129004</name>
+      </trkpt>
+      <trkpt lat="48.20460510253906" lon="11.451411247253418">
+        <name>129005</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87776</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130020&#xA;      &#xA;      &#xA;        130021&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15591812133789" lon="11.435287475585938">
+        <name>130020</name>
+      </trkpt>
+      <trkpt lat="48.155826568603516" lon="11.4338960647583">
+        <name>130021</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90121</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132300&#xA;      &#xA;      &#xA;        132301&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23891067504883" lon="11.387601852416992">
+        <name>132300</name>
+      </trkpt>
+      <trkpt lat="48.237770080566406" lon="11.391716003417969">
+        <name>132301</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96894</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138559&#xA;      &#xA;      &#xA;        138560&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31550979614258" lon="11.622157096862793">
+        <name>138559</name>
+      </trkpt>
+      <trkpt lat="48.3157958984375" lon="11.621613502502441">
+        <name>138560</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105230</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146783&#xA;      &#xA;      &#xA;        146785&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.09009552001953" lon="11.744902610778809">
+        <name>146783</name>
+      </trkpt>
+      <trkpt lat="48.08650207519531" lon="11.742046356201172">
+        <name>146785</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85953</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128275&#xA;      &#xA;      &#xA;        128276&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1573371887207" lon="11.415735244750977">
+        <name>128275</name>
+      </trkpt>
+      <trkpt lat="48.15665054321289" lon="11.416059494018555">
+        <name>128276</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105491</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147042&#xA;      &#xA;      &#xA;        147043&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.10460662841797" lon="11.582091331481934">
+        <name>147042</name>
+      </trkpt>
+      <trkpt lat="48.10552215576172" lon="11.581433296203613">
+        <name>147043</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86735</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129003&#xA;      &#xA;      &#xA;        129006&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.204437255859375" lon="11.451411247253418">
+        <name>129003</name>
+      </trkpt>
+      <trkpt lat="48.20454406738281" lon="11.453527450561523">
+        <name>129006</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87777</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130021&#xA;      &#xA;      &#xA;        130022&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155826568603516" lon="11.4338960647583">
+        <name>130021</name>
+      </trkpt>
+      <trkpt lat="48.1557731628418" lon="11.43345832824707">
+        <name>130022</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90122</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132301&#xA;      &#xA;      &#xA;        132302&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.237770080566406" lon="11.391716003417969">
+        <name>132301</name>
+      </trkpt>
+      <trkpt lat="48.2369384765625" lon="11.394429206848145">
+        <name>132302</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96895</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138560&#xA;      &#xA;      &#xA;        138561&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.3157958984375" lon="11.621613502502441">
+        <name>138560</name>
+      </trkpt>
+      <trkpt lat="48.317012786865234" lon="11.620813369750977">
+        <name>138561</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85954</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128276&#xA;      &#xA;      &#xA;        128277&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15665054321289" lon="11.416059494018555">
+        <name>128276</name>
+      </trkpt>
+      <trkpt lat="48.15625" lon="11.41647720336914">
+        <name>128277</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105492</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147043&#xA;      &#xA;      &#xA;        147044&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.10552215576172" lon="11.581433296203613">
+        <name>147043</name>
+      </trkpt>
+      <trkpt lat="48.10664367675781" lon="11.580348014831543">
+        <name>147044</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86736</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129006&#xA;      &#xA;      &#xA;        129007&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20454406738281" lon="11.453527450561523">
+        <name>129006</name>
+      </trkpt>
+      <trkpt lat="48.20488739013672" lon="11.456193923950195">
+        <name>129007</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87778</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130022&#xA;      &#xA;      &#xA;        130009&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1557731628418" lon="11.43345832824707">
+        <name>130022</name>
+      </trkpt>
+      <trkpt lat="48.155662536621094" lon="11.432219505310059">
+        <name>130009</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90123</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132302&#xA;      &#xA;      &#xA;        132303&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2369384765625" lon="11.394429206848145">
+        <name>132302</name>
+      </trkpt>
+      <trkpt lat="48.2354736328125" lon="11.398770332336426">
+        <name>132303</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96896</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138562&#xA;      &#xA;      &#xA;        138563&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31689453125" lon="11.620243072509766">
+        <name>138562</name>
+      </trkpt>
+      <trkpt lat="48.31547546386719" lon="11.62098503112793">
+        <name>138563</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105493</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147044&#xA;      &#xA;      &#xA;        147045&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.10664367675781" lon="11.580348014831543">
+        <name>147044</name>
+      </trkpt>
+      <trkpt lat="48.10773468017578" lon="11.579633712768555">
+        <name>147045</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86737</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129005&#xA;      &#xA;      &#xA;        129009&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20460510253906" lon="11.451411247253418">
+        <name>129005</name>
+      </trkpt>
+      <trkpt lat="48.204708099365234" lon="11.453545570373535">
+        <name>129009</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87779</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130022&#xA;      &#xA;      &#xA;        130016&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1557731628418" lon="11.43345832824707">
+        <name>130022</name>
+      </trkpt>
+      <trkpt lat="48.154693603515625" lon="11.433305740356445">
+        <name>130016</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90124</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132303&#xA;      &#xA;      &#xA;        132304&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2354736328125" lon="11.398770332336426">
+        <name>132303</name>
+      </trkpt>
+      <trkpt lat="48.23393249511719" lon="11.403369903564453">
+        <name>132304</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96897</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138563&#xA;      &#xA;      &#xA;        138564&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31547546386719" lon="11.62098503112793">
+        <name>138563</name>
+      </trkpt>
+      <trkpt lat="48.31473159790039" lon="11.621156692504883">
+        <name>138564</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105494</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147045&#xA;      &#xA;      &#xA;        147046&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.10773468017578" lon="11.579633712768555">
+        <name>147045</name>
+      </trkpt>
+      <trkpt lat="48.10979461669922" lon="11.578605651855469">
+        <name>147046</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86738</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129009&#xA;      &#xA;      &#xA;        129010&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.204708099365234" lon="11.453545570373535">
+        <name>129009</name>
+      </trkpt>
+      <trkpt lat="48.20506286621094" lon="11.456117630004883">
+        <name>129010</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87780</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130017&#xA;      &#xA;      &#xA;        130031&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15703201293945" lon="11.431781768798828">
+        <name>130017</name>
+      </trkpt>
+      <trkpt lat="48.157081604003906" lon="11.433610916137695">
+        <name>130031</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90125</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132304&#xA;      &#xA;      &#xA;        132305&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23393249511719" lon="11.403369903564453">
+        <name>132304</name>
+      </trkpt>
+      <trkpt lat="48.23289108276367" lon="11.406712532043457">
+        <name>132305</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96898</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138564&#xA;      &#xA;      &#xA;        138565&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31473159790039" lon="11.621156692504883">
+        <name>138564</name>
+      </trkpt>
+      <trkpt lat="48.314388275146484" lon="11.62064266204834">
+        <name>138565</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85957</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128279&#xA;      &#xA;      &#xA;        128280&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1557731628418" lon="11.418363571166992">
+        <name>128279</name>
+      </trkpt>
+      <trkpt lat="48.155609130859375" lon="11.419143676757812">
+        <name>128280</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105495</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147046&#xA;      &#xA;      &#xA;        147047&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.10979461669922" lon="11.578605651855469">
+        <name>147046</name>
+      </trkpt>
+      <trkpt lat="48.11067199707031" lon="11.577862739562988">
+        <name>147047</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87781</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130031&#xA;      &#xA;      &#xA;        130021&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.157081604003906" lon="11.433610916137695">
+        <name>130031</name>
+      </trkpt>
+      <trkpt lat="48.155826568603516" lon="11.4338960647583">
+        <name>130021</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86739</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129010&#xA;      &#xA;      &#xA;        129011&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20506286621094" lon="11.456117630004883">
+        <name>129010</name>
+      </trkpt>
+      <trkpt lat="48.20536804199219" lon="11.458573341369629">
+        <name>129011</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90126</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132305&#xA;      &#xA;      &#xA;        132306&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23289108276367" lon="11.406712532043457">
+        <name>132305</name>
+      </trkpt>
+      <trkpt lat="48.231895446777344" lon="11.410367965698242">
+        <name>132306</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96899</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138565&#xA;      &#xA;      &#xA;        138566&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.314388275146484" lon="11.62064266204834">
+        <name>138565</name>
+      </trkpt>
+      <trkpt lat="48.31440734863281" lon="11.619786262512207">
+        <name>138566</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85958</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128280&#xA;      &#xA;      &#xA;        128281&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155609130859375" lon="11.419143676757812">
+        <name>128280</name>
+      </trkpt>
+      <trkpt lat="48.155609130859375" lon="11.419639587402344">
+        <name>128281</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105496</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147047&#xA;      &#xA;      &#xA;        147048&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11067199707031" lon="11.577862739562988">
+        <name>147047</name>
+      </trkpt>
+      <trkpt lat="48.11137390136719" lon="11.576720237731934">
+        <name>147048</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87782</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130020&#xA;      &#xA;      &#xA;        130019&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15591812133789" lon="11.435287475585938">
+        <name>130020</name>
+      </trkpt>
+      <trkpt lat="48.15719985961914" lon="11.435076713562012">
+        <name>130019</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86740</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129007&#xA;      &#xA;      &#xA;        129008&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20488739013672" lon="11.456193923950195">
+        <name>129007</name>
+      </trkpt>
+      <trkpt lat="48.2051887512207" lon="11.458612442016602">
+        <name>129008</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90127</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132306&#xA;      &#xA;      &#xA;        132307&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.231895446777344" lon="11.410367965698242">
+        <name>132306</name>
+      </trkpt>
+      <trkpt lat="48.23114013671875" lon="11.414167404174805">
+        <name>132307</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96900</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138566&#xA;      &#xA;      &#xA;        138567&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31440734863281" lon="11.619786262512207">
+        <name>138566</name>
+      </trkpt>
+      <trkpt lat="48.314674377441406" lon="11.61921501159668">
+        <name>138567</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85959</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128281&#xA;      &#xA;      &#xA;        128282&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155609130859375" lon="11.419639587402344">
+        <name>128281</name>
+      </trkpt>
+      <trkpt lat="48.155765533447266" lon="11.4202299118042">
+        <name>128282</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105497</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147048&#xA;      &#xA;      &#xA;        147049&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.11137390136719" lon="11.576720237731934">
+        <name>147048</name>
+      </trkpt>
+      <trkpt lat="48.111663818359375" lon="11.574806213378906">
+        <name>147049</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87783</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130019&#xA;      &#xA;      &#xA;        130018&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15719985961914" lon="11.435076713562012">
+        <name>130019</name>
+      </trkpt>
+      <trkpt lat="48.15801239013672" lon="11.433935165405273">
+        <name>130018</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86741</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129008&#xA;      &#xA;      &#xA;        129013&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2051887512207" lon="11.458612442016602">
+        <name>129008</name>
+      </trkpt>
+      <trkpt lat="48.20819854736328" lon="11.461540222167969">
+        <name>129013</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90128</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132307&#xA;      &#xA;      &#xA;        132308&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23114013671875" lon="11.414167404174805">
+        <name>132307</name>
+      </trkpt>
+      <trkpt lat="48.23054885864258" lon="11.41833782196045">
+        <name>132308</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96901</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138567&#xA;      &#xA;      &#xA;        138568&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.314674377441406" lon="11.61921501159668">
+        <name>138567</name>
+      </trkpt>
+      <trkpt lat="48.31513214111328" lon="11.619071006774902">
+        <name>138568</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85960</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128282&#xA;      &#xA;      &#xA;        128283&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155765533447266" lon="11.4202299118042">
+        <name>128282</name>
+      </trkpt>
+      <trkpt lat="48.155521392822266" lon="11.420629501342773">
+        <name>128283</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105498</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147049&#xA;      &#xA;      &#xA;        147050&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.111663818359375" lon="11.574806213378906">
+        <name>147049</name>
+      </trkpt>
+      <trkpt lat="48.111854553222656" lon="11.573321342468262">
+        <name>147050</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87784</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130018&#xA;      &#xA;      &#xA;        130004&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15801239013672" lon="11.433935165405273">
+        <name>130018</name>
+      </trkpt>
+      <trkpt lat="48.15778350830078" lon="11.430315971374512">
+        <name>130004</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86742</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129011&#xA;      &#xA;      &#xA;        129012&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20536804199219" lon="11.458573341369629">
+        <name>129011</name>
+      </trkpt>
+      <trkpt lat="48.208370208740234" lon="11.461411476135254">
+        <name>129012</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90129</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132308&#xA;      &#xA;      &#xA;        132309&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23054885864258" lon="11.41833782196045">
+        <name>132308</name>
+      </trkpt>
+      <trkpt lat="48.23027801513672" lon="11.421852111816406">
+        <name>132309</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96902</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138568&#xA;      &#xA;      &#xA;        138553&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.31513214111328" lon="11.619071006774902">
+        <name>138568</name>
+      </trkpt>
+      <trkpt lat="48.31557083129883" lon="11.619699478149414">
+        <name>138553</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85961</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128283&#xA;      &#xA;      &#xA;        128284&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155521392822266" lon="11.420629501342773">
+        <name>128283</name>
+      </trkpt>
+      <trkpt lat="48.1554069519043" lon="11.421238899230957">
+        <name>128284</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105499</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147050&#xA;      &#xA;      &#xA;        147051&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.111854553222656" lon="11.573321342468262">
+        <name>147050</name>
+      </trkpt>
+      <trkpt lat="48.111793518066406" lon="11.571435928344727">
+        <name>147051</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87785</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129861&#xA;      &#xA;      &#xA;        130032&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15625" lon="11.421810150146484">
+        <name>129861</name>
+      </trkpt>
+      <trkpt lat="48.15654754638672" lon="11.422792434692383">
+        <name>130032</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86743</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129012&#xA;      &#xA;      &#xA;        129014&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.208370208740234" lon="11.461411476135254">
+        <name>129012</name>
+      </trkpt>
+      <trkpt lat="48.20899963378906" lon="11.463811874389648">
+        <name>129014</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90130</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132309&#xA;      &#xA;      &#xA;        132310&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23027801513672" lon="11.421852111816406">
+        <name>132309</name>
+      </trkpt>
+      <trkpt lat="48.23014450073242" lon="11.42579460144043">
+        <name>132310</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96903</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138554&#xA;      &#xA;      &#xA;        138569&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.316444396972656" lon="11.621499061584473">
+        <name>138554</name>
+      </trkpt>
+      <trkpt lat="48.317012786865234" lon="11.622756004333496">
+        <name>138569</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105239</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146785&#xA;      &#xA;      &#xA;        146790&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.08650207519531" lon="11.742046356201172">
+        <name>146785</name>
+      </trkpt>
+      <trkpt lat="48.08387756347656" lon="11.739588737487793">
+        <name>146790</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85962</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128284&#xA;      &#xA;      &#xA;        128285&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.1554069519043" lon="11.421238899230957">
+        <name>128284</name>
+      </trkpt>
+      <trkpt lat="48.155391693115234" lon="11.421829223632812">
+        <name>128285</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105500</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147051&#xA;      &#xA;      &#xA;        147052&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.111793518066406" lon="11.571435928344727">
+        <name>147051</name>
+      </trkpt>
+      <trkpt lat="48.111854553222656" lon="11.570521354675293">
+        <name>147052</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87786</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        130032&#xA;      &#xA;      &#xA;        129859&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15654754638672" lon="11.422792434692383">
+        <name>130032</name>
+      </trkpt>
+      <trkpt lat="48.1568717956543" lon="11.424266815185547">
+        <name>129859</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86744</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129014&#xA;      &#xA;      &#xA;        129015&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20899963378906" lon="11.463811874389648">
+        <name>129014</name>
+      </trkpt>
+      <trkpt lat="48.20960998535156" lon="11.466525077819824">
+        <name>129015</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90131</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132310&#xA;      &#xA;      &#xA;        132311&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.23014450073242" lon="11.42579460144043">
+        <name>132310</name>
+      </trkpt>
+      <trkpt lat="48.2303352355957" lon="11.43065071105957">
+        <name>132311</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96904</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138569&#xA;      &#xA;      &#xA;        138570&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.317012786865234" lon="11.622756004333496">
+        <name>138569</name>
+      </trkpt>
+      <trkpt lat="48.317501068115234" lon="11.624070167541504">
+        <name>138570</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105240</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146790&#xA;      &#xA;      &#xA;        146791&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.08387756347656" lon="11.739588737487793">
+        <name>146790</name>
+      </trkpt>
+      <trkpt lat="48.08120346069336" lon="11.736961364746094">
+        <name>146791</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85963</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128285&#xA;      &#xA;      &#xA;        128286&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155391693115234" lon="11.421829223632812">
+        <name>128285</name>
+      </trkpt>
+      <trkpt lat="48.155582427978516" lon="11.422438621520996">
+        <name>128286</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105501</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        147052&#xA;      &#xA;      &#xA;        147053&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.111854553222656" lon="11.570521354675293">
+        <name>147052</name>
+      </trkpt>
+      <trkpt lat="48.11228942871094" lon="11.568950653076172">
+        <name>147053</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>87787</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129851&#xA;      &#xA;      &#xA;        130039&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.15902328491211" lon="11.4244384765625">
+        <name>129851</name>
+      </trkpt>
+      <trkpt lat="48.1588249206543" lon="11.424487113952637">
+        <name>130039</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>86745</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        129015&#xA;      &#xA;      &#xA;        129016&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.20960998535156" lon="11.466525077819824">
+        <name>129015</name>
+      </trkpt>
+      <trkpt lat="48.2098388671875" lon="11.468038558959961">
+        <name>129016</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>90132</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        132311&#xA;      &#xA;      &#xA;        132312&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.2303352355957" lon="11.43065071105957">
+        <name>132311</name>
+      </trkpt>
+      <trkpt lat="48.23075485229492" lon="11.434049606323242">
+        <name>132312</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>96905</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        138570&#xA;      &#xA;      &#xA;        138571&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.317501068115234" lon="11.624070167541504">
+        <name>138570</name>
+      </trkpt>
+      <trkpt lat="48.31795883178711" lon="11.62561321258545">
+        <name>138571</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>105241</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        146791&#xA;      &#xA;      &#xA;        146797&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.08120346069336" lon="11.736961364746094">
+        <name>146791</name>
+      </trkpt>
+      <trkpt lat="48.07872009277344" lon="11.734161376953125">
+        <name>146797</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <trk>
+    <name>85964</name>
+    <extensions>
+      <osm:property key="trkseg" value="&#xA;      &#xA;        128286&#xA;      &#xA;      &#xA;        128287&#xA;      &#xA;    " />
+    </extensions>
+    <trkseg>
+      <trkpt lat="48.155582427978516" lon="11.422438621520996">
+        <name>128286</name>
+      </trkpt>
+      <trkpt lat="48.1555061340332" lon="11.422523498535156">
+        <name>128287</name>
+      </trkpt>
+    </trkseg>
+  </trk>
+  <wpt lat="48.17121887207031" lon="11.717523574829102" />
+  <wpt lat="48.17500686645508" lon="11.753143310546875" />
+  <wpt lat="48.176429748535156" lon="11.752127647399902" />
+  <wpt lat="48.1754264831543" lon="11.754337310791016" />
+  <wpt lat="48.174217224121094" lon="11.424162864685059">
+    <name>128957</name>
+  </wpt>
+  <wpt lat="48.155643463134766" lon="11.422701835632324">
+    <name>129868</name>
+  </wpt>
+  <wpt lat="48.12916564941406" lon="11.432292938232422">
+    <name>147122</name>
+  </wpt>
+  <wpt lat="48.22261047363281" lon="11.521598815917969">
+    <name>129054</name>
+  </wpt>
+  <wpt lat="48.1593132019043" lon="11.414639472961426">
+    <name>130050</name>
+  </wpt>
+  <wpt lat="48.22390365600586" lon="11.525740623474121">
+    <name>129058</name>
+  </wpt>
+  <wpt lat="48.183956146240234" lon="11.43463134765625">
+    <name>128970</name>
+  </wpt>
+  <wpt lat="48.16300582885742" lon="11.4417142868042">
+    <name>129970</name>
+  </wpt>
+  <wpt lat="48.24871063232422" lon="11.475098609924316">
+    <name>132337</name>
+  </wpt>
+  <wpt lat="48.20454406738281" lon="11.453527450561523">
+    <name>129006</name>
+  </wpt>
+  <wpt lat="48.16322326660156" lon="11.44354248046875">
+    <name>129966</name>
+  </wpt>
+  <wpt lat="48.20269012451172" lon="11.389164924621582">
+    <name>132172</name>
+  </wpt>
+  <wpt lat="48.13386535644531" lon="11.759300231933594">
+    <name>146755</name>
+  </wpt>
+  <wpt lat="48.123714447021484" lon="11.470142364501953">
+    <name>147097</name>
+  </wpt>
+  <wpt lat="48.13019561767578" lon="11.428665161132812">
+    <name>147126</name>
+  </wpt>
+  <wpt lat="48.20945739746094" lon="11.489090919494629">
+    <name>129036</name>
+  </wpt>
+  <wpt lat="48.26178741455078" lon="11.476641654968262">
+    <name>132351</name>
+  </wpt>
+  <wpt lat="48.22712326049805" lon="11.542451858520508">
+    <name>129068</name>
+  </wpt>
+  <wpt lat="48.185516357421875" lon="11.436097145080566">
+    <name>128973</name>
+  </wpt>
+  <wpt lat="48.11137390136719" lon="11.576720237731934">
+    <name>147048</name>
+  </wpt>
+  <wpt lat="48.220001220703125" lon="11.631725311279297">
+    <name>146652</name>
+  </wpt>
+  <wpt lat="48.192291259765625" lon="11.437602996826172">
+    <name>128980</name>
+  </wpt>
+  <wpt lat="48.24143600463867" lon="11.535510063171387">
+    <name>129089</name>
+  </wpt>
+  <wpt lat="48.2356071472168" lon="11.446189880371094">
+    <name>132316</name>
+  </wpt>
+  <wpt lat="48.16069412231445" lon="11.426705360412598">
+    <name>129842</name>
+  </wpt>
+  <wpt lat="48.15254211425781" lon="11.419535636901855">
+    <name>132129</name>
+  </wpt>
+  <wpt lat="48.172203063964844" lon="11.417598724365234">
+    <name>128948</name>
+  </wpt>
+  <wpt lat="48.209930419921875" lon="11.475778579711914">
+    <name>129023</name>
+  </wpt>
+  <wpt lat="48.15998077392578" lon="11.415048599243164">
+    <name>128270</name>
+  </wpt>
+  <wpt lat="48.18870544433594" lon="11.437164306640625">
+    <name>128976</name>
+  </wpt>
+  <wpt lat="48.174095153808594" lon="11.420430183410645">
+    <name>128951</name>
+  </wpt>
+  <wpt lat="48.16770553588867" lon="11.416025161743164">
+    <name>128932</name>
+  </wpt>
+  <wpt lat="48.1344108581543" lon="11.424732208251953">
+    <name>147137</name>
+  </wpt>
+  <wpt lat="48.19039535522461" lon="11.705796241760254">
+    <name>146697</name>
+  </wpt>
+  <wpt lat="48.16217803955078" lon="11.436266899108887">
+    <name>129990</name>
+  </wpt>
+  <wpt lat="48.2540168762207" lon="11.498437881469727">
+    <name>138522</name>
+  </wpt>
+  <wpt lat="48.10460662841797" lon="11.582091331481934">
+    <name>147042</name>
+  </wpt>
+  <wpt lat="48.20044708251953" lon="11.403279304504395">
+    <name>129923</name>
+  </wpt>
+  <wpt lat="48.20600509643555" lon="11.404182434082031">
+    <name>146557</name>
+  </wpt>
+  <wpt lat="48.247642517089844" lon="11.477270126342773">
+    <name>138495</name>
+  </wpt>
+  <wpt lat="48.164371490478516" lon="11.41325855255127">
+    <name>128263</name>
+  </wpt>
+  <wpt lat="48.204376220703125" lon="11.448440551757812">
+    <name>129002</name>
+  </wpt>
+  <wpt lat="48.14508819580078" lon="11.420185089111328">
+    <name>132152</name>
+  </wpt>
+  <wpt lat="48.15498352050781" lon="11.43012523651123">
+    <name>130014</name>
+  </wpt>
+  <wpt lat="48.160160064697266" lon="11.440266609191895">
+    <name>129978</name>
+  </wpt>
+  <wpt lat="48.242977142333984" lon="11.470528602600098">
+    <name>132326</name>
+  </wpt>
+  <wpt lat="48.16454315185547" lon="11.436134338378906">
+    <name>129997</name>
+  </wpt>
+  <wpt lat="48.20899963378906" lon="11.463811874389648">
+    <name>129014</name>
+  </wpt>
+  <wpt lat="48.15715026855469" lon="11.425485610961914">
+    <name>129857</name>
+  </wpt>
+  <wpt lat="48.125160217285156" lon="11.441462516784668">
+    <name>147113</name>
+  </wpt>
+  <wpt lat="48.13248825073242" lon="11.425494194030762">
+    <name>147131</name>
+  </wpt>
+  <wpt lat="48.17925262451172" lon="11.401580810546875">
+    <name>128244</name>
+  </wpt>
+  <wpt lat="48.26237869262695" lon="11.473928451538086">
+    <name>132363</name>
+  </wpt>
+  <wpt lat="48.24235534667969" lon="11.466129302978516">
+    <name>132324</name>
+  </wpt>
+  <wpt lat="48.14338302612305" lon="11.419879913330078">
+    <name>132145</name>
+  </wpt>
+  <wpt lat="48.23075485229492" lon="11.434049606323242">
+    <name>132312</name>
+  </wpt>
+  <wpt lat="48.25321578979492" lon="11.472185134887695">
+    <name>132339</name>
+  </wpt>
+  <wpt lat="48.16082000732422" lon="11.427447319030762">
+    <name>129841</name>
+  </wpt>
+  <wpt lat="48.2098388671875" lon="11.468038558959961">
+    <name>129016</name>
+  </wpt>
+  <wpt lat="48.133026123046875" lon="11.424561500549316">
+    <name>147133</name>
+  </wpt>
+  <wpt lat="48.23091125488281" lon="11.542795181274414">
+    <name>129077</name>
+  </wpt>
+  <wpt lat="48.21751022338867" lon="11.507829666137695">
+    <name>129043</name>
+  </wpt>
+  <wpt lat="48.14573287963867" lon="11.422355651855469">
+    <name>132137</name>
+  </wpt>
+  <wpt lat="48.156185150146484" lon="11.432143211364746">
+    <name>130008</name>
+  </wpt>
+  <wpt lat="48.1619873046875" lon="11.413928985595703">
+    <name>128916</name>
+  </wpt>
+  <wpt lat="48.23569107055664" lon="11.539652824401855">
+    <name>129085</name>
+  </wpt>
+  <wpt lat="48.19287109375" lon="11.371485710144043">
+    <name>128224</name>
+  </wpt>
+  <wpt lat="48.20506286621094" lon="11.456117630004883">
+    <name>129010</name>
+  </wpt>
+  <wpt lat="48.11292266845703" lon="11.566207885742188">
+    <name>147055</name>
+  </wpt>
+  <wpt lat="48.14500045776367" lon="11.422831535339355">
+    <name>132138</name>
+  </wpt>
+  <wpt lat="48.110538482666016" lon="11.533586502075195">
+    <name>147069</name>
+  </wpt>
+  <wpt lat="48.2041130065918" lon="11.443658828735352">
+    <name>128996</name>
+  </wpt>
+  <wpt lat="48.244537353515625" lon="11.533624649047852">
+    <name>129093</name>
+  </wpt>
+  <wpt lat="48.12415313720703" lon="11.449317932128906">
+    <name>147105</name>
+  </wpt>
+  <wpt lat="48.12584686279297" lon="11.50187873840332">
+    <name>147090</name>
+  </wpt>
+  <wpt lat="48.15801239013672" lon="11.433935165405273">
+    <name>130018</name>
+  </wpt>
+  <wpt lat="48.161048889160156" lon="11.44163703918457">
+    <name>129975</name>
+  </wpt>
+  <wpt lat="48.18608474731445" lon="11.425017356872559">
+    <name>129931</name>
+  </wpt>
+  <wpt lat="48.155338287353516" lon="11.417689323425293">
+    <name>132125</name>
+  </wpt>
+  <wpt lat="48.16469955444336" lon="11.442723274230957">
+    <name>129964</name>
+  </wpt>
+  <wpt lat="48.11067199707031" lon="11.577862739562988">
+    <name>147047</name>
+  </wpt>
+  <wpt lat="48.160919189453125" lon="11.428182601928711">
+    <name>130128</name>
+  </wpt>
+  <wpt lat="48.211204528808594" lon="11.37743091583252">
+    <name>132192</name>
+  </wpt>
+  <wpt lat="48.25606918334961" lon="11.47104263305664">
+    <name>132342</name>
+  </wpt>
+  <wpt lat="48.2154426574707" lon="11.371563911437988">
+    <name>132198</name>
+  </wpt>
+  <wpt lat="48.20991134643555" lon="11.47098159790039">
+    <name>129017</name>
+  </wpt>
+  <wpt lat="48.222251892089844" lon="11.354974746704102">
+    <name>132216</name>
+  </wpt>
+  <wpt lat="48.252323150634766" lon="11.533859252929688">
+    <name>138542</name>
+  </wpt>
+  <wpt lat="48.21046829223633" lon="11.49468994140625">
+    <name>129033</name>
+  </wpt>
+  <wpt lat="48.1559944152832" lon="11.415895462036133">
+    <name>130068</name>
+  </wpt>
+  <wpt lat="48.18279266357422" lon="11.431987762451172">
+    <name>129947</name>
+  </wpt>
+  <wpt lat="48.23891067504883" lon="11.387601852416992">
+    <name>132300</name>
+  </wpt>
+  <wpt lat="48.21770095825195" lon="11.507600784301758">
+    <name>129047</name>
+  </wpt>
+  <wpt lat="48.17435073852539" lon="11.422626495361328">
+    <name>128955</name>
+  </wpt>
+  <wpt lat="48.209686279296875" lon="11.475935935974121">
+    <name>129022</name>
+  </wpt>
+  <wpt lat="48.16510772705078" lon="11.414983749389648">
+    <name>128925</name>
+  </wpt>
+  <wpt lat="48.13529968261719" lon="11.425589561462402">
+    <name>147139</name>
+  </wpt>
+  <wpt lat="48.12205505371094" lon="11.518889427185059">
+    <name>147081</name>
+  </wpt>
+  <wpt lat="48.25956726074219" lon="11.46955680847168">
+    <name>132357</name>
+  </wpt>
+  <wpt lat="48.15824508666992" lon="11.42487621307373">
+    <name>129853</name>
+  </wpt>
+  <wpt lat="48.2159309387207" lon="11.504087448120117">
+    <name>129046</name>
+  </wpt>
+  <wpt lat="48.22617721557617" lon="11.360904693603516">
+    <name>130109</name>
+  </wpt>
+  <wpt lat="48.16310501098633" lon="11.4426851272583">
+    <name>129969</name>
+  </wpt>
+  <wpt lat="48.253047943115234" lon="11.534402847290039">
+    <name>138545</name>
+  </wpt>
+  <wpt lat="48.20488739013672" lon="11.456193923950195">
+    <name>129007</name>
+  </wpt>
+  <wpt lat="48.21843338012695" lon="11.367830276489258">
+    <name>132204</name>
+  </wpt>
+  <wpt lat="48.240013122558594" lon="11.380974769592285">
+    <name>132298</name>
+  </wpt>
+  <wpt lat="48.161285400390625" lon="11.429211616516113">
+    <name>130129</name>
+  </wpt>
+  <wpt lat="48.262760162353516" lon="11.470842361450195">
+    <name>132361</name>
+  </wpt>
+  <wpt lat="48.163551330566406" lon="11.436266899108887">
+    <name>129989</name>
+  </wpt>
+  <wpt lat="48.239463806152344" lon="11.384860038757324">
+    <name>132299</name>
+  </wpt>
+  <wpt lat="48.16694259643555" lon="11.415630340576172">
+    <name>128929</name>
+  </wpt>
+  <wpt lat="48.11668014526367" lon="11.757728576660156">
+    <name>146770</name>
+  </wpt>
+  <wpt lat="48.161624908447266" lon="11.424362182617188">
+    <name>129846</name>
+  </wpt>
+  <wpt lat="48.26184844970703" lon="11.469328880310059">
+    <name>132358</name>
+  </wpt>
+  <wpt lat="48.1717643737793" lon="11.416621208190918">
+    <name>128945</name>
+  </wpt>
+  <wpt lat="48.189117431640625" lon="11.420389175415039">
+    <name>129929</name>
+  </wpt>
+  <wpt lat="48.2041015625" lon="11.39770793914795">
+    <name>129921</name>
+  </wpt>
+  <wpt lat="48.18379211425781" lon="11.72150707244873">
+    <name>146707</name>
+  </wpt>
+  <wpt lat="48.12485885620117" lon="11.453230857849121">
+    <name>147100</name>
+  </wpt>
+  <wpt lat="48.224327087402344" lon="11.621726989746094">
+    <name>146643</name>
+  </wpt>
+  <wpt lat="48.23150634765625" lon="11.35140323638916">
+    <name>129911</name>
+  </wpt>
+  <wpt lat="48.10773468017578" lon="11.579633712768555">
+    <name>147045</name>
+  </wpt>
+  <wpt lat="48.259647369384766" lon="11.475641250610352">
+    <name>132350</name>
+  </wpt>
+  <wpt lat="48.17430114746094" lon="11.420811653137207">
+    <name>128952</name>
+  </wpt>
+  <wpt lat="48.196815490722656" lon="11.356856346130371">
+    <name>128216</name>
+  </wpt>
+  <wpt lat="48.111854553222656" lon="11.573321342468262">
+    <name>147050</name>
+  </wpt>
+  <wpt lat="48.17397689819336" lon="11.426778793334961">
+    <name>128959</name>
+  </wpt>
+  <wpt lat="48.16154479980469" lon="11.442514419555664">
+    <name>129971</name>
+  </wpt>
+  <wpt lat="48.2070426940918" lon="11.382288932800293">
+    <name>132184</name>
+  </wpt>
+  <wpt lat="48.14774703979492" lon="11.75610065460205">
+    <name>146739</name>
+  </wpt>
+  <wpt lat="48.155853271484375" lon="11.429533958435059">
+    <name>130007</name>
+  </wpt>
+  <wpt lat="48.17185592651367" lon="11.41676139831543">
+    <name>128946</name>
+  </wpt>
+  <wpt lat="48.1124382019043" lon="11.516919136047363">
+    <name>147076</name>
+  </wpt>
+  <wpt lat="48.15665054321289" lon="11.420392036437988">
+    <name>130035</name>
+  </wpt>
+  <wpt lat="48.16387176513672" lon="11.415186882019043">
+    <name>128922</name>
+  </wpt>
+  <wpt lat="48.17836380004883" lon="11.400629043579102">
+    <name>128240</name>
+  </wpt>
+  <wpt lat="48.12855529785156" lon="11.433406829833984">
+    <name>147119</name>
+  </wpt>
+  <wpt lat="48.12434005737305" lon="11.457630157470703">
+    <name>147099</name>
+  </wpt>
+  <wpt lat="48.22727584838867" lon="11.57025146484375">
+    <name>146617</name>
+  </wpt>
+  <wpt lat="48.109954833984375" lon="11.527202606201172">
+    <name>147072</name>
+  </wpt>
+  <wpt lat="48.133419036865234" lon="11.424808502197266">
+    <name>147135</name>
+  </wpt>
+  <wpt lat="48.16254806518555" lon="11.413848876953125">
+    <name>128265</name>
+  </wpt>
+  <wpt lat="48.2534065246582" lon="11.53363037109375">
+    <name>138546</name>
+  </wpt>
+  <wpt lat="48.18460464477539" lon="11.427245140075684">
+    <name>129932</name>
+  </wpt>
+  <wpt lat="48.161468505859375" lon="11.43708610534668">
+    <name>129981</name>
+  </wpt>
+  <wpt lat="48.2038459777832" lon="11.441754341125488">
+    <name>128999</name>
+  </wpt>
+  <wpt lat="48.25597381591797" lon="11.472413063049316">
+    <name>132343</name>
+  </wpt>
+  <wpt lat="48.17356491088867" lon="11.42984676361084">
+    <name>129817</name>
+  </wpt>
+  <wpt lat="48.1559944152832" lon="11.430524826049805">
+    <name>130006</name>
+  </wpt>
+  <wpt lat="48.15481948852539" lon="11.432182312011719">
+    <name>130015</name>
+  </wpt>
+  <wpt lat="48.15591812133789" lon="11.417476654052734">
+    <name>130070</name>
+  </wpt>
+  <wpt lat="48.12554168701172" lon="11.450003623962402">
+    <name>147102</name>
+  </wpt>
+  <wpt lat="48.2354736328125" lon="11.398770332336426">
+    <name>132303</name>
+  </wpt>
+  <wpt lat="48.22428894042969" lon="11.536967277526855">
+    <name>129063</name>
+  </wpt>
+  <wpt lat="48.17500686645508" lon="11.753143310546875" />
+  <wpt lat="48.158077239990234" lon="11.41846752166748">
+    <name>130041</name>
+  </wpt>
+  <wpt lat="48.159603118896484" lon="11.417915344238281">
+    <name>130043</name>
+  </wpt>
+  <wpt lat="48.24026870727539" lon="11.451703071594238">
+    <name>132319</name>
+  </wpt>
+  <wpt lat="48.18577575683594" lon="11.717822074890137">
+    <name>146706</name>
+  </wpt>
+  <wpt lat="48.16404724121094" lon="11.434248924255371">
+    <name>129995</name>
+  </wpt>
+  <wpt lat="48.18158721923828" lon="11.725021362304688">
+    <name>146710</name>
+  </wpt>
+  <wpt lat="48.16197204589844" lon="11.435981750488281">
+    <name>129991</name>
+  </wpt>
+  <wpt lat="48.1741828918457" lon="11.426032066345215">
+    <name>130126</name>
+  </wpt>
+  <wpt lat="48.208839416503906" lon="11.379411697387695">
+    <name>132189</name>
+  </wpt>
+  <wpt lat="48.133216857910156" lon="11.424808502197266">
+    <name>147134</name>
+  </wpt>
+  <wpt lat="48.12955093383789" lon="11.430464744567871">
+    <name>147125</name>
+  </wpt>
+  <wpt lat="48.178855895996094" lon="11.402247428894043">
+    <name>128243</name>
+  </wpt>
+  <wpt lat="48.25371170043945" lon="11.507694244384766">
+    <name>138528</name>
+  </wpt>
+  <wpt lat="48.20880889892578" lon="11.4639253616333">
+    <name>129018</name>
+  </wpt>
+  <wpt lat="48.15473175048828" lon="11.436982154846191">
+    <name>130028</name>
+  </wpt>
+  <wpt lat="48.111793518066406" lon="11.571435928344727">
+    <name>147051</name>
+  </wpt>
+  <wpt lat="48.24520492553711" lon="11.474727630615234">
+    <name>132329</name>
+  </wpt>
+  <wpt lat="48.19234085083008" lon="11.373237609863281">
+    <name>128225</name>
+  </wpt>
+  <wpt lat="48.12527847290039" lon="11.447260856628418">
+    <name>147109</name>
+  </wpt>
+  <wpt lat="48.24374008178711" lon="11.472557067871094">
+    <name>132327</name>
+  </wpt>
+  <wpt lat="48.1119499206543" lon="11.545069694519043">
+    <name>147062</name>
+  </wpt>
+  <wpt lat="48.11770248413086" lon="11.516919136047363">
+    <name>147079</name>
+  </wpt>
+  <wpt lat="48.255897521972656" lon="11.473898887634277">
+    <name>132344</name>
+  </wpt>
+  <wpt lat="48.252662658691406" lon="11.524460792541504">
+    <name>138538</name>
+  </wpt>
+  <wpt lat="48.157466888427734" lon="11.427210807800293">
+    <name>130002</name>
+  </wpt>
+  <wpt lat="48.259613037109375" lon="11.534852981567383">
+    <name>129101</name>
+  </wpt>
+  <wpt lat="48.15797424316406" lon="11.413873672485352">
+    <name>128914</name>
+  </wpt>
+  <wpt lat="48.220272064208984" lon="11.514314651489258">
+    <name>129049</name>
+  </wpt>
+  <wpt lat="48.1758918762207" lon="11.40815258026123">
+    <name>128249</name>
+  </wpt>
+  <wpt lat="48.158939361572266" lon="11.41490650177002">
+    <name>130051</name>
+  </wpt>
+  <wpt lat="48.110382080078125" lon="11.531702041625977">
+    <name>147070</name>
+  </wpt>
+  <wpt lat="48.14534378051758" lon="11.757185935974121">
+    <name>146740</name>
+  </wpt>
+  <wpt lat="48.22179412841797" lon="11.517857551574707">
+    <name>129053</name>
+  </wpt>
+  <wpt lat="48.14417266845703" lon="11.418928146362305">
+    <name>132150</name>
+  </wpt>
+  <wpt lat="48.2051887512207" lon="11.458612442016602">
+    <name>129008</name>
+  </wpt>
+  <wpt lat="48.192588806152344" lon="11.696626663208008">
+    <name>146691</name>
+  </wpt>
+  <wpt lat="48.24245071411133" lon="11.458816528320312">
+    <name>132322</name>
+  </wpt>
+  <wpt lat="48.157814025878906" lon="11.425047874450684">
+    <name>129855</name>
+  </wpt>
+  <wpt lat="48.12466812133789" lon="11.494766235351562">
+    <name>147092</name>
+  </wpt>
+  <wpt lat="48.17849349975586" lon="11.404114723205566">
+    <name>128246</name>
+  </wpt>
+  <wpt lat="48.15450668334961" lon="11.436943054199219">
+    <name>130029</name>
+  </wpt>
+  <wpt lat="48.1359748840332" lon="11.424484252929688">
+    <name>147140</name>
+  </wpt>
+  <wpt lat="48.17410659790039" lon="11.425445556640625">
+    <name>128958</name>
+  </wpt>
+  <wpt lat="48.17221450805664" lon="11.406915664672852">
+    <name>128253</name>
+  </wpt>
+  <wpt lat="48.181175231933594" lon="11.430559158325195">
+    <name>129940</name>
+  </wpt>
+  <wpt lat="48.16740798950195" lon="11.433294296264648">
+    <name>129826</name>
+  </wpt>
+  <wpt lat="48.18305206298828" lon="11.433813095092773">
+    <name>128968</name>
+  </wpt>
+  <wpt lat="48.131263732910156" lon="11.428522109985352">
+    <name>147128</name>
+  </wpt>
+  <wpt lat="48.12335205078125" lon="11.519131660461426">
+    <name>147084</name>
+  </wpt>
+  <wpt lat="48.17152404785156" lon="11.73678970336914">
+    <name>146726</name>
+  </wpt>
+  <wpt lat="48.21403884887695" lon="11.373507499694824">
+    <name>132196</name>
+  </wpt>
+  <wpt lat="48.2534294128418" lon="11.512406349182129">
+    <name>138533</name>
+  </wpt>
+  <wpt lat="48.15016174316406" lon="11.42050838470459">
+    <name>132131</name>
+  </wpt>
+  <wpt lat="48.16843795776367" lon="11.739703178405762">
+    <name>146727</name>
+  </wpt>
+  <wpt lat="48.16244888305664" lon="11.441847801208496">
+    <name>129973</name>
+  </wpt>
+  <wpt lat="48.179805755615234" lon="11.430930137634277">
+    <name>129935</name>
+  </wpt>
+  <wpt lat="48.226966857910156" lon="11.563253402709961">
+    <name>146615</name>
+  </wpt>
+  <wpt lat="48.15492248535156" lon="11.435439109802246">
+    <name>130025</name>
+  </wpt>
+  <wpt lat="48.196720123291016" lon="11.6783447265625">
+    <name>146678</name>
+  </wpt>
+  <wpt lat="48.21506881713867" lon="11.371984481811523">
+    <name>132197</name>
+  </wpt>
+  <wpt lat="48.22670364379883" lon="11.613443374633789">
+    <name>146635</name>
+  </wpt>
+  <wpt lat="48.23218536376953" lon="11.542280197143555">
+    <name>129078</name>
+  </wpt>
+  <wpt lat="48.2396354675293" lon="11.366806030273438">
+    <name>132294</name>
+  </wpt>
+  <wpt lat="48.163719177246094" lon="11.435429573059082">
+    <name>129994</name>
+  </wpt>
+  <wpt lat="48.20854949951172" lon="11.380002975463867">
+    <name>132188</name>
+  </wpt>
+  <wpt lat="48.15772247314453" lon="11.412315368652344">
+    <name>130060</name>
+  </wpt>
+  <wpt lat="48.25078582763672" lon="11.473670959472656">
+    <name>132338</name>
+  </wpt>
+  <wpt lat="48.16211700439453" lon="11.444266319274902">
+    <name>129967</name>
+  </wpt>
+  <wpt lat="48.11063003540039" lon="11.540756225585938">
+    <name>147066</name>
+  </wpt>
+  <wpt lat="48.15803909301758" lon="11.41309642791748">
+    <name>130059</name>
+  </wpt>
+  <wpt lat="48.231895446777344" lon="11.410367965698242">
+    <name>132306</name>
+  </wpt>
+  <wpt lat="48.18155288696289" lon="11.43061637878418">
+    <name>129939</name>
+  </wpt>
+  <wpt lat="48.21907424926758" lon="11.51057243347168">
+    <name>129051</name>
+  </wpt>
+  <wpt lat="48.24600601196289" lon="11.476527214050293">
+    <name>132335</name>
+  </wpt>
+  <wpt lat="48.18587112426758" lon="11.435945510864258">
+    <name>128972</name>
+  </wpt>
+  <wpt lat="48.16543197631836" lon="11.742560386657715">
+    <name>146729</name>
+  </wpt>
+  <wpt lat="48.25620651245117" lon="11.53354549407959">
+    <name>138547</name>
+  </wpt>
+  <wpt lat="48.253936767578125" lon="11.503922462463379">
+    <name>138526</name>
+  </wpt>
+  <wpt lat="48.195831298828125" lon="11.361104011535645">
+    <name>128219</name>
+  </wpt>
+  <wpt lat="48.1647834777832" lon="11.438780784606934">
+    <name>129999</name>
+  </wpt>
+  <wpt lat="48.11228942871094" lon="11.568950653076172">
+    <name>147053</name>
+  </wpt>
+  <wpt lat="48.20662307739258" lon="11.390746116638184">
+    <name>132181</name>
+  </wpt>
+  <wpt lat="48.1557731628418" lon="11.43345832824707">
+    <name>130022</name>
+  </wpt>
+  <wpt lat="48.1807975769043" lon="11.430644035339355">
+    <name>129941</name>
+  </wpt>
+  <wpt lat="48.21223449707031" lon="11.498602867126465">
+    <name>129040</name>
+  </wpt>
+  <wpt lat="48.18275451660156" lon="11.43270206451416">
+    <name>129946</name>
+  </wpt>
+  <wpt lat="48.20064926147461" lon="11.437145233154297">
+    <name>128992</name>
+  </wpt>
+  <wpt lat="48.16201400756836" lon="11.414069175720215">
+    <name>128918</name>
+  </wpt>
+  <wpt lat="48.19957733154297" lon="11.66911792755127">
+    <name>146676</name>
+  </wpt>
+  <wpt lat="48.21390914916992" lon="11.501259803771973">
+    <name>129041</name>
+  </wpt>
+  <wpt lat="48.156982421875" lon="11.41515827178955">
+    <name>128911</name>
+  </wpt>
+  <wpt lat="48.16111373901367" lon="11.42811393737793">
+    <name>129840</name>
+  </wpt>
+  <wpt lat="48.164642333984375" lon="11.436400413513184">
+    <name>129998</name>
+  </wpt>
+  <wpt lat="48.204078674316406" lon="11.438546180725098">
+    <name>146581</name>
+  </wpt>
+  <wpt lat="48.21168518066406" lon="11.376859664916992">
+    <name>132193</name>
+  </wpt>
+  <wpt lat="48.19442367553711" lon="11.38927936553955">
+    <name>132164</name>
+  </wpt>
+  <wpt lat="48.19266891479492" lon="11.388726234436035">
+    <name>132163</name>
+  </wpt>
+  <wpt lat="48.182090759277344" lon="11.43061637878418">
+    <name>129938</name>
+  </wpt>
+  <wpt lat="48.143917083740234" lon="11.418279647827148">
+    <name>132149</name>
+  </wpt>
+  <wpt lat="48.20228576660156" lon="11.400910377502441">
+    <name>130116</name>
+  </wpt>
+  <wpt lat="48.14375305175781" lon="11.423383712768555">
+    <name>132139</name>
+  </wpt>
+  <wpt lat="48.210693359375" lon="11.494518280029297">
+    <name>129038</name>
+  </wpt>
+  <wpt lat="48.199188232421875" lon="11.436497688293457">
+    <name>128991</name>
+  </wpt>
+  <wpt lat="48.24211120605469" lon="11.456016540527344">
+    <name>132321</name>
+  </wpt>
+  <wpt lat="48.153141021728516" lon="11.419193267822266">
+    <name>132128</name>
+  </wpt>
+  <wpt lat="48.13139724731445" lon="11.4284086227417">
+    <name>147129</name>
+  </wpt>
+  <wpt lat="48.19364547729492" lon="11.437621116638184">
+    <name>128983</name>
+  </wpt>
+  <wpt lat="48.17850112915039" lon="11.402514457702637">
+    <name>128242</name>
+  </wpt>
+  <wpt lat="48.17450714111328" lon="11.425860404968262">
+    <name>130125</name>
+  </wpt>
+  <wpt lat="48.17674255371094" lon="11.428302764892578">
+    <name>128961</name>
+  </wpt>
+  <wpt lat="48.188961029052734" lon="11.38735580444336">
+    <name>132156</name>
+  </wpt>
+  <wpt lat="48.17540740966797" lon="11.408267974853516">
+    <name>128250</name>
+  </wpt>
+  <wpt lat="48.14353561401367" lon="11.421175003051758">
+    <name>132147</name>
+  </wpt>
+  <wpt lat="48.15703201293945" lon="11.431781768798828">
+    <name>130017</name>
+  </wpt>
+  <wpt lat="48.158329010009766" lon="11.415116310119629">
+    <name>130052</name>
+  </wpt>
+  <wpt lat="48.13910675048828" lon="11.425970077514648">
+    <name>147144</name>
+  </wpt>
+  <wpt lat="48.11650466918945" lon="11.516704559326172">
+    <name>147078</name>
+  </wpt>
+  <wpt lat="48.13723373413086" lon="11.426979064941406">
+    <name>147143</name>
+  </wpt>
+  <wpt lat="48.20431137084961" lon="11.445525169372559">
+    <name>128997</name>
+  </wpt>
+  <wpt lat="48.12382888793945" lon="11.758956909179688">
+    <name>146768</name>
+  </wpt>
+  <wpt lat="48.19568634033203" lon="11.41089153289795">
+    <name>130118</name>
+  </wpt>
+  <wpt lat="48.110595703125" lon="11.5352144241333">
+    <name>147068</name>
+  </wpt>
+  <wpt lat="48.23826217651367" lon="11.537595748901367">
+    <name>129086</name>
+  </wpt>
+  <wpt lat="48.14376449584961" lon="11.41757583618164">
+    <name>132148</name>
+  </wpt>
+  <wpt lat="48.228912353515625" lon="11.593419075012207">
+    <name>146623</name>
+  </wpt>
+  <wpt lat="48.15407943725586" lon="11.75218677520752">
+    <name>146737</name>
+  </wpt>
+  <wpt lat="48.22845458984375" lon="11.58316421508789">
+    <name>146620</name>
+  </wpt>
+  <wpt lat="48.193756103515625" lon="11.437374114990234">
+    <name>128982</name>
+  </wpt>
+  <wpt lat="48.22660827636719" lon="11.547627449035645">
+    <name>146607</name>
+  </wpt>
+  <wpt lat="48.19804763793945" lon="11.406907081604004">
+    <name>129924</name>
+  </wpt>
+  <wpt lat="48.16618728637695" lon="11.415833473205566">
+    <name>128927</name>
+  </wpt>
+  <wpt lat="48.15736389160156" lon="11.411820411682129">
+    <name>130061</name>
+  </wpt>
+  <wpt lat="48.158226013183594" lon="11.421916007995605">
+    <name>130038</name>
+  </wpt>
+  <wpt lat="48.19248580932617" lon="11.41533374786377">
+    <name>129927</name>
+  </wpt>
+  <wpt lat="48.181915283203125" lon="11.432844161987305">
+    <name>129937</name>
+  </wpt>
+  <wpt lat="48.1844367980957" lon="11.386801719665527">
+    <name>128231</name>
+  </wpt>
+  <wpt lat="48.1644287109375" lon="11.439676284790039">
+    <name>130000</name>
+  </wpt>
+  <wpt lat="48.240264892578125" lon="11.377461433410645">
+    <name>132297</name>
+  </wpt>
+  <wpt lat="48.209739685058594" lon="11.492204666137695">
+    <name>129032</name>
+  </wpt>
+  <wpt lat="48.1600341796875" lon="11.417057991027832">
+    <name>130047</name>
+  </wpt>
+  <wpt lat="48.16789245605469" lon="11.416291236877441">
+    <name>128933</name>
+  </wpt>
+  <wpt lat="48.26625061035156" lon="11.538652420043945">
+    <name>129105</name>
+  </wpt>
+  <wpt lat="48.18360900878906" lon="11.388019561767578">
+    <name>128232</name>
+  </wpt>
+  <wpt lat="48.21529006958008" lon="11.379414558410645">
+    <name>130112</name>
+  </wpt>
+  <wpt lat="48.192481994628906" lon="11.437773704528809">
+    <name>128981</name>
+  </wpt>
+  <wpt lat="48.10231399536133" lon="11.583576202392578">
+    <name>147041</name>
+  </wpt>
+  <wpt lat="48.16351318359375" lon="11.415148735046387">
+    <name>128921</name>
+  </wpt>
+  <wpt lat="48.19658279418945" lon="11.358247756958008">
+    <name>128217</name>
+  </wpt>
+  <wpt lat="48.15910339355469" lon="11.415334701538086">
+    <name>128272</name>
+  </wpt>
+  <wpt lat="48.188995361328125" lon="11.437488555908203">
+    <name>128977</name>
+  </wpt>
+  <wpt lat="48.1785774230957" lon="11.43030834197998">
+    <name>128964</name>
+  </wpt>
+  <wpt lat="48.229549407958984" lon="11.355305671691895">
+    <name>130108</name>
+  </wpt>
+  <wpt lat="48.14329528808594" lon="11.417670249938965">
+    <name>132143</name>
+  </wpt>
+  <wpt lat="48.24520492553711" lon="11.4764986038208">
+    <name>132334</name>
+  </wpt>
+  <wpt lat="48.15609359741211" lon="11.41463851928711">
+    <name>130067</name>
+  </wpt>
+  <wpt lat="48.163856506347656" lon="11.443180084228516">
+    <name>129965</name>
+  </wpt>
+  <wpt lat="48.244693756103516" lon="11.533967971801758">
+    <name>129091</name>
+  </wpt>
+  <wpt lat="48.204429626464844" lon="11.445259094238281">
+    <name>129001</name>
+  </wpt>
+  <wpt lat="48.252628326416016" lon="11.52791690826416">
+    <name>138539</name>
+  </wpt>
+  <wpt lat="48.20926284790039" lon="11.481378555297852">
+    <name>129025</name>
+  </wpt>
+  <wpt lat="48.12397766113281" lon="11.491280555725098">
+    <name>147093</name>
+  </wpt>
+  <wpt lat="48.171478271484375" lon="11.416101455688477">
+    <name>128943</name>
+  </wpt>
+  <wpt lat="48.10664367675781" lon="11.580348014831543">
+    <name>147044</name>
+  </wpt>
+  <wpt lat="48.11061096191406" lon="11.53869915008545">
+    <name>147067</name>
+  </wpt>
+  <wpt lat="48.21829605102539" lon="11.374273300170898">
+    <name>130111</name>
+  </wpt>
+  <wpt lat="48.16179656982422" lon="11.437276840209961">
+    <name>129982</name>
+  </wpt>
+  <wpt lat="48.20787811279297" lon="11.381831169128418">
+    <name>132186</name>
+  </wpt>
+  <wpt lat="48.2730712890625" lon="11.543594360351562">
+    <name>129112</name>
+  </wpt>
+  <wpt lat="48.146888732910156" lon="11.421669960021973">
+    <name>132135</name>
+  </wpt>
+  <wpt lat="48.15665054321289" lon="11.416059494018555">
+    <name>128276</name>
+  </wpt>
+  <wpt lat="48.22493362426758" lon="11.533967018127441">
+    <name>129061</name>
+  </wpt>
+  <wpt lat="48.22047805786133" lon="11.364363670349121">
+    <name>132207</name>
+  </wpt>
+  <wpt lat="48.171939849853516" lon="11.417180061340332">
+    <name>128947</name>
+  </wpt>
+  <wpt lat="48.18793487548828" lon="11.380284309387207">
+    <name>128228</name>
+  </wpt>
+  <wpt lat="48.23427200317383" lon="11.444162368774414">
+    <name>132315</name>
+  </wpt>
+  <wpt lat="48.16828918457031" lon="11.415287971496582">
+    <name>128937</name>
+  </wpt>
+  <wpt lat="48.21318054199219" lon="11.382625579833984">
+    <name>129917</name>
+  </wpt>
+  <wpt lat="48.20566177368164" lon="11.410266876220703">
+    <name>146562</name>
+  </wpt>
+  <wpt lat="48.13288497924805" lon="11.424598693847656">
+    <name>147132</name>
+  </wpt>
+  <wpt lat="48.2124137878418" lon="11.37592601776123">
+    <name>132194</name>
+  </wpt>
+  <wpt lat="48.15665054321289" lon="11.420639991760254">
+    <name>130034</name>
+  </wpt>
+  <wpt lat="48.171024322509766" lon="11.41575813293457">
+    <name>128942</name>
+  </wpt>
+  <wpt lat="48.15615463256836" lon="11.422321319580078">
+    <name>129866</name>
+  </wpt>
+  <wpt lat="48.18747329711914" lon="11.436745643615723">
+    <name>128974</name>
+  </wpt>
+  <wpt lat="48.161808013916016" lon="11.436019897460938">
+    <name>129992</name>
+  </wpt>
+  <wpt lat="48.20536804199219" lon="11.458573341369629">
+    <name>129011</name>
+  </wpt>
+  <wpt lat="48.20498275756836" lon="11.65574836730957">
+    <name>146664</name>
+  </wpt>
+  <wpt lat="48.22277069091797" lon="11.366313934326172">
+    <name>129914</name>
+  </wpt>
+  <wpt lat="48.23159408569336" lon="11.437734603881836">
+    <name>132313</name>
+  </wpt>
+  <wpt lat="48.19072341918945" lon="11.43775463104248">
+    <name>128979</name>
+  </wpt>
+  <wpt lat="48.11301803588867" lon="11.564323425292969">
+    <name>147056</name>
+  </wpt>
+  <wpt lat="48.111148834228516" lon="11.542670249938965">
+    <name>147064</name>
+  </wpt>
+  <wpt lat="48.16055679321289" lon="11.413077354431152">
+    <name>130054</name>
+  </wpt>
+  <wpt lat="48.263057708740234" lon="11.53628158569336">
+    <name>129103</name>
+  </wpt>
+  <wpt lat="48.174461364746094" lon="11.420989036560059">
+    <name>128953</name>
+  </wpt>
+  <wpt lat="48.20629119873047" lon="11.390746116638184">
+    <name>132180</name>
+  </wpt>
+  <wpt lat="48.22364044189453" lon="11.357954978942871">
+    <name>132212</name>
+  </wpt>
+  <wpt lat="48.255821228027344" lon="11.474470138549805">
+    <name>132346</name>
+  </wpt>
+  <wpt lat="48.11389923095703" lon="11.516790390014648">
+    <name>147077</name>
+  </wpt>
+  <wpt lat="48.137001037597656" lon="11.426217079162598">
+    <name>147142</name>
+  </wpt>
+  <wpt lat="48.14470672607422" lon="11.419593811035156">
+    <name>132151</name>
+  </wpt>
+  <wpt lat="48.20966339111328" lon="11.47098159790039">
+    <name>129021</name>
+  </wpt>
+  <wpt lat="48.16734313964844" lon="11.415529251098633">
+    <name>128931</name>
+  </wpt>
+  <wpt lat="48.18982696533203" lon="11.377103805541992">
+    <name>128227</name>
+  </wpt>
+  <wpt lat="48.15719985961914" lon="11.435076713562012">
+    <name>130019</name>
+  </wpt>
+  <wpt lat="48.16802978515625" lon="11.416316986083984">
+    <name>128934</name>
+  </wpt>
+  <wpt lat="48.187095642089844" lon="11.384841918945312">
+    <name>132154</name>
+  </wpt>
+  <wpt lat="48.15562057495117" lon="11.422557830810547">
+    <name>128289</name>
+  </wpt>
+  <wpt lat="48.25270462036133" lon="11.534516334533691">
+    <name>138544</name>
+  </wpt>
+  <wpt lat="48.24971389770508" lon="11.480213165283203">
+    <name>138503</name>
+  </wpt>
+  <wpt lat="48.209205627441406" lon="11.489204406738281">
+    <name>129031</name>
+  </wpt>
+  <wpt lat="48.1616325378418" lon="11.429903030395508">
+    <name>129837</name>
+  </wpt>
+  <wpt lat="48.16362380981445" lon="11.440876007080078">
+    <name>129987</name>
+  </wpt>
+  <wpt lat="48.20299530029297" lon="11.390631675720215">
+    <name>132173</name>
+  </wpt>
+  <wpt lat="48.217498779296875" lon="11.368268966674805">
+    <name>132202</name>
+  </wpt>
+  <wpt lat="48.155826568603516" lon="11.4338960647583">
+    <name>130021</name>
+  </wpt>
+  <wpt lat="48.2041130065918" lon="11.436518669128418">
+    <name>146578</name>
+  </wpt>
+  <wpt lat="48.11234664916992" lon="11.558324813842773">
+    <name>147059</name>
+  </wpt>
+  <wpt lat="48.20819854736328" lon="11.461540222167969">
+    <name>129013</name>
+  </wpt>
+  <wpt lat="48.193443298339844" lon="11.369275093078613">
+    <name>128223</name>
+  </wpt>
+  <wpt lat="48.155765533447266" lon="11.4202299118042">
+    <name>128282</name>
+  </wpt>
+  <wpt lat="48.20195770263672" lon="11.438268661499023">
+    <name>128993</name>
+  </wpt>
+  <wpt lat="48.23054885864258" lon="11.41833782196045">
+    <name>132308</name>
+  </wpt>
+  <wpt lat="48.11261749267578" lon="11.560724258422852">
+    <name>147058</name>
+  </wpt>
+  <wpt lat="48.227638244628906" lon="11.574878692626953">
+    <name>146618</name>
+  </wpt>
+  <wpt lat="48.15623474121094" lon="11.413535118103027">
+    <name>130066</name>
+  </wpt>
+  <wpt lat="48.157081604003906" lon="11.433610916137695">
+    <name>130031</name>
+  </wpt>
+  <wpt lat="48.125370025634766" lon="11.4467191696167">
+    <name>147110</name>
+  </wpt>
+  <wpt lat="48.140869140625" lon="11.424903869628906">
+    <name>147145</name>
+  </wpt>
+  <wpt lat="48.24713134765625" lon="11.476212501525879">
+    <name>132336</name>
+  </wpt>
+  <wpt lat="48.11006546020508" lon="11.529173851013184">
+    <name>147071</name>
+  </wpt>
+  <wpt lat="48.20897674560547" lon="11.486090660095215">
+    <name>129030</name>
+  </wpt>
+  <wpt lat="48.16554641723633" lon="11.442113876342773">
+    <name>129963</name>
+  </wpt>
+  <wpt lat="48.22052001953125" lon="11.514142990112305">
+    <name>129052</name>
+  </wpt>
+  <wpt lat="48.12443542480469" lon="11.449603080749512">
+    <name>147104</name>
+  </wpt>
+  <wpt lat="48.11289978027344" lon="11.562723159790039">
+    <name>147057</name>
+  </wpt>
+  <wpt lat="48.12552261352539" lon="11.439862251281738">
+    <name>147114</name>
+  </wpt>
+  <wpt lat="48.15804672241211" lon="11.415238380432129">
+    <name>128274</name>
+  </wpt>
+  <wpt lat="48.25597381591797" lon="11.47467041015625">
+    <name>132347</name>
+  </wpt>
+  <wpt lat="48.16340255737305" lon="11.433084487915039">
+    <name>129834</name>
+  </wpt>
+  <wpt lat="48.15815353393555" lon="11.413496017456055">
+    <name>130058</name>
+  </wpt>
+  <wpt lat="48.1554069519043" lon="11.421238899230957">
+    <name>128284</name>
+  </wpt>
+  <wpt lat="48.21609115600586" lon="11.370402336120605">
+    <name>132200</name>
+  </wpt>
+  <wpt lat="48.16832733154297" lon="11.415098190307617">
+    <name>128938</name>
+  </wpt>
+  <wpt lat="48.22293472290039" lon="11.359668731689453">
+    <name>132209</name>
+  </wpt>
+  <wpt lat="48.14219284057617" lon="11.424046516418457">
+    <name>147146</name>
+  </wpt>
+  <wpt lat="48.154693603515625" lon="11.433305740356445">
+    <name>130016</name>
+  </wpt>
+  <wpt lat="48.16154479980469" lon="11.423810005187988">
+    <name>129847</name>
+  </wpt>
+  <wpt lat="48.16019821166992" lon="11.440552711486816">
+    <name>129977</name>
+  </wpt>
+  <wpt lat="48.17017364501953" lon="11.415186882019043">
+    <name>128941</name>
+  </wpt>
+  <wpt lat="48.17458724975586" lon="11.733591079711914">
+    <name>146718</name>
+  </wpt>
+  <wpt lat="48.206459045410156" lon="11.397440910339355">
+    <name>146552</name>
+  </wpt>
+  <wpt lat="48.22478103637695" lon="11.535195350646973">
+    <name>129062</name>
+  </wpt>
+  <wpt lat="48.16078186035156" lon="11.414229393005371">
+    <name>128268</name>
+  </wpt>
+  <wpt lat="48.16140365600586" lon="11.423238754272461">
+    <name>129848</name>
+  </wpt>
+  <wpt lat="48.228111267089844" lon="11.605473518371582">
+    <name>146633</name>
+  </wpt>
+  <wpt lat="48.173858642578125" lon="11.429275512695312">
+    <name>129815</name>
+  </wpt>
+  <wpt lat="48.09323501586914" lon="11.589033126831055">
+    <name>147038</name>
+  </wpt>
+  <wpt lat="48.176368713378906" lon="11.427108764648438">
+    <name>128963</name>
+  </wpt>
+  <wpt lat="48.1607780456543" lon="11.423638343811035">
+    <name>129849</name>
+  </wpt>
+  <wpt lat="48.216957092285156" lon="11.637124061584473">
+    <name>146653</name>
+  </wpt>
+  <wpt lat="48.26201629638672" lon="11.476641654968262">
+    <name>132353</name>
+  </wpt>
+  <wpt lat="48.19567108154297" lon="11.437126159667969">
+    <name>128985</name>
+  </wpt>
+  <wpt lat="48.18618392944336" lon="11.383527755737305">
+    <name>132159</name>
+  </wpt>
+  <wpt lat="48.21350860595703" lon="11.642379760742188">
+    <name>146654</name>
+  </wpt>
+  <wpt lat="48.230796813964844" lon="11.542594909667969">
+    <name>129082</name>
+  </wpt>
+  <wpt lat="48.2035026550293" lon="11.393126487731934">
+    <name>132175</name>
+  </wpt>
+  <wpt lat="48.163089752197266" lon="11.41486930847168">
+    <name>128920</name>
+  </wpt>
+  <wpt lat="48.1568717956543" lon="11.415644645690918">
+    <name>128910</name>
+  </wpt>
+  <wpt lat="48.17868423461914" lon="11.42976188659668">
+    <name>128965</name>
+  </wpt>
+  <wpt lat="48.15787124633789" lon="11.425211906433105">
+    <name>130001</name>
+  </wpt>
+  <wpt lat="48.20960998535156" lon="11.466525077819824">
+    <name>129015</name>
+  </wpt>
+  <wpt lat="48.11186599731445" lon="11.517218589782715">
+    <name>147075</name>
+  </wpt>
+  <wpt lat="48.179595947265625" lon="11.727705955505371">
+    <name>146716</name>
+  </wpt>
+  <wpt lat="48.1557502746582" lon="11.423044204711914">
+    <name>129869</name>
+  </wpt>
+  <wpt lat="48.12434005737305" lon="11.514275550842285">
+    <name>147086</name>
+  </wpt>
+  <wpt lat="48.207340240478516" lon="11.392509460449219">
+    <name>129919</name>
+  </wpt>
+  <wpt lat="48.179378509521484" lon="11.40104866027832">
+    <name>128245</name>
+  </wpt>
+  <wpt lat="48.17930221557617" lon="11.398858070373535">
+    <name>128238</name>
+  </wpt>
+  <wpt lat="48.131019592285156" lon="11.759414672851562">
+    <name>146756</name>
+  </wpt>
+  <wpt lat="48.221527099609375" lon="11.517942428588867">
+    <name>129050</name>
+  </wpt>
+  <wpt lat="48.16865158081055" lon="11.434913635253906">
+    <name>129825</name>
+  </wpt>
+  <wpt lat="48.22386932373047" lon="11.358469009399414">
+    <name>132211</name>
+  </wpt>
+  <wpt lat="48.2574348449707" lon="11.469785690307617">
+    <name>132356</name>
+  </wpt>
+  <wpt lat="48.20945739746094" lon="11.466724395751953">
+    <name>129019</name>
+  </wpt>
+  <wpt lat="48.22888946533203" lon="11.596275329589844">
+    <name>146624</name>
+  </wpt>
+  <wpt lat="48.15902328491211" lon="11.4244384765625">
+    <name>129851</name>
+  </wpt>
+  <wpt lat="48.19572830200195" lon="11.410449028015137">
+    <name>129925</name>
+  </wpt>
+  <wpt lat="48.21577072143555" lon="11.371126174926758">
+    <name>132199</name>
+  </wpt>
+  <wpt lat="48.176429748535156" lon="11.752127647399902" />
+  <wpt lat="48.2303352355957" lon="11.43065071105957">
+    <name>132311</name>
+  </wpt>
+  <wpt lat="48.15922927856445" lon="11.415238380432129">
+    <name>128271</name>
+  </wpt>
+  <wpt lat="48.255062103271484" lon="11.470985412597656">
+    <name>132340</name>
+  </wpt>
+  <wpt lat="48.155582427978516" lon="11.422438621520996">
+    <name>128286</name>
+  </wpt>
+  <wpt lat="48.25114440917969" lon="11.48441219329834">
+    <name>138515</name>
+  </wpt>
+  <wpt lat="48.1252555847168" lon="11.444718360900879">
+    <name>147111</name>
+  </wpt>
+  <wpt lat="48.11228942871094" lon="11.554667472839355">
+    <name>147061</name>
+  </wpt>
+  <wpt lat="48.16291427612305" lon="11.441009521484375">
+    <name>129985</name>
+  </wpt>
+  <wpt lat="48.26260757446289" lon="11.469271659851074">
+    <name>132359</name>
+  </wpt>
+  <wpt lat="48.23812484741211" lon="11.537338256835938">
+    <name>129087</name>
+  </wpt>
+  <wpt lat="48.182373046875" lon="11.433072090148926">
+    <name>129945</name>
+  </wpt>
+  <wpt lat="48.22418975830078" lon="11.538480758666992">
+    <name>129064</name>
+  </wpt>
+  <wpt lat="48.18239212036133" lon="11.431615829467773">
+    <name>129948</name>
+  </wpt>
+  <wpt lat="48.16596603393555" lon="11.41179084777832">
+    <name>128259</name>
+  </wpt>
+  <wpt lat="48.16657638549805" lon="11.41580867767334">
+    <name>128928</name>
+  </wpt>
+  <wpt lat="48.213287353515625" lon="11.374726295471191">
+    <name>132195</name>
+  </wpt>
+  <wpt lat="48.155242919921875" lon="11.430867195129395">
+    <name>130012</name>
+  </wpt>
+  <wpt lat="48.17170715332031" lon="11.41641902923584">
+    <name>128944</name>
+  </wpt>
+  <wpt lat="48.182682037353516" lon="11.430130004882812">
+    <name>129934</name>
+  </wpt>
+  <wpt lat="48.23550033569336" lon="11.53945255279541">
+    <name>129088</name>
+  </wpt>
+  <wpt lat="48.20366668701172" lon="11.441774368286133">
+    <name>128995</name>
+  </wpt>
+  <wpt lat="48.16474533081055" lon="11.414895057678223">
+    <name>128924</name>
+  </wpt>
+  <wpt lat="48.226741790771484" lon="11.552311897277832">
+    <name>146608</name>
+  </wpt>
+  <wpt lat="48.19073486328125" lon="11.417933464050293">
+    <name>129928</name>
+  </wpt>
+  <wpt lat="48.15846633911133" lon="11.41837215423584">
+    <name>130042</name>
+  </wpt>
+  <wpt lat="48.225921630859375" lon="11.541851997375488">
+    <name>129067</name>
+  </wpt>
+  <wpt lat="48.165409088134766" lon="11.4125337600708">
+    <name>128262</name>
+  </wpt>
+  <wpt lat="48.172969818115234" lon="11.418627738952637">
+    <name>128949</name>
+  </wpt>
+  <wpt lat="48.19978332519531" lon="11.390555381774902">
+    <name>132168</name>
+  </wpt>
+  <wpt lat="48.154911041259766" lon="11.436753273010254">
+    <name>130027</name>
+  </wpt>
+  <wpt lat="48.231201171875" lon="11.35247802734375">
+    <name>130107</name>
+  </wpt>
+  <wpt lat="48.17258834838867" lon="11.43079948425293">
+    <name>129819</name>
+  </wpt>
+  <wpt lat="48.205257415771484" lon="11.417179107666016">
+    <name>146565</name>
+  </wpt>
+  <wpt lat="48.19516372680664" lon="11.3895263671875">
+    <name>132165</name>
+  </wpt>
+  <wpt lat="48.26258850097656" lon="11.472442626953125">
+    <name>132362</name>
+  </wpt>
+  <wpt lat="48.14286422729492" lon="11.423746109008789">
+    <name>132140</name>
+  </wpt>
+  <wpt lat="48.120094299316406" lon="11.758414268493652">
+    <name>146769</name>
+  </wpt>
+  <wpt lat="48.20954513549805" lon="11.38876724243164">
+    <name>129918</name>
+  </wpt>
+  <wpt lat="48.22706604003906" lon="11.566394805908203">
+    <name>146616</name>
+  </wpt>
+  <wpt lat="48.23326873779297" lon="11.541594505310059">
+    <name>129079</name>
+  </wpt>
+  <wpt lat="48.155391693115234" lon="11.421829223632812">
+    <name>128285</name>
+  </wpt>
+  <wpt lat="48.22893524169922" lon="11.355859756469727">
+    <name>129912</name>
+  </wpt>
+  <wpt lat="48.237770080566406" lon="11.391716003417969">
+    <name>132301</name>
+  </wpt>
+  <wpt lat="48.20571517944336" lon="11.395195007324219">
+    <name>129920</name>
+  </wpt>
+  <wpt lat="48.208370208740234" lon="11.461411476135254">
+    <name>129012</name>
+  </wpt>
+  <wpt lat="48.16147994995117" lon="11.429370880126953">
+    <name>129838</name>
+  </wpt>
+  <wpt lat="48.20453643798828" lon="11.429862022399902">
+    <name>146574</name>
+  </wpt>
+  <wpt lat="48.1802978515625" lon="11.430959701538086">
+    <name>129942</name>
+  </wpt>
+  <wpt lat="48.109981536865234" lon="11.520133018493652">
+    <name>147073</name>
+  </wpt>
+  <wpt lat="48.16580581665039" lon="11.432646751403809">
+    <name>129829</name>
+  </wpt>
+  <wpt lat="48.1588249206543" lon="11.424487113952637">
+    <name>130039</name>
+  </wpt>
+  <wpt lat="48.17143630981445" lon="11.43259048461914">
+    <name>129821</name>
+  </wpt>
+  <wpt lat="48.22868347167969" lon="11.58687686920166">
+    <name>146621</name>
+  </wpt>
+  <wpt lat="48.1424674987793" lon="11.420888900756836">
+    <name>132141</name>
+  </wpt>
+  <wpt lat="48.206851959228516" lon="11.38701343536377">
+    <name>132182</name>
+  </wpt>
+  <wpt lat="48.2188606262207" lon="11.51082992553711">
+    <name>129048</name>
+  </wpt>
+  <wpt lat="48.157161712646484" lon="11.422430038452148">
+    <name>130033</name>
+  </wpt>
+  <wpt lat="48.22850036621094" lon="11.542451858520508">
+    <name>129080</name>
+  </wpt>
+  <wpt lat="48.23653793334961" lon="11.35439395904541">
+    <name>132290</name>
+  </wpt>
+  <wpt lat="48.169002532958984" lon="11.43704891204834">
+    <name>129955</name>
+  </wpt>
+  <wpt lat="48.2114372253418" lon="11.496403694152832">
+    <name>129039</name>
+  </wpt>
+  <wpt lat="48.17089080810547" lon="11.433656692504883">
+    <name>129822</name>
+  </wpt>
+  <wpt lat="48.18769073486328" lon="11.422589302062988">
+    <name>129930</name>
+  </wpt>
+  <wpt lat="48.20722198486328" lon="11.393383979797363">
+    <name>146550</name>
+  </wpt>
+  <wpt lat="48.21792984008789" lon="11.367925643920898">
+    <name>132203</name>
+  </wpt>
+  <wpt lat="48.173858642578125" lon="11.428360939025879">
+    <name>129814</name>
+  </wpt>
+  <wpt lat="48.216670989990234" lon="11.36941146850586">
+    <name>132201</name>
+  </wpt>
+  <wpt lat="48.247169494628906" lon="11.532854080200195">
+    <name>129094</name>
+  </wpt>
+  <wpt lat="48.1751594543457" lon="11.425369262695312">
+    <name>128962</name>
+  </wpt>
+  <wpt lat="48.23393249511719" lon="11.403369903564453">
+    <name>132304</name>
+  </wpt>
+  <wpt lat="48.179840087890625" lon="11.395505905151367">
+    <name>128236</name>
+  </wpt>
+  <wpt lat="48.18502426147461" lon="11.426959037780762">
+    <name>130121</name>
+  </wpt>
+  <wpt lat="48.157657623291016" lon="11.42873477935791">
+    <name>130003</name>
+  </wpt>
+  <wpt lat="48.09632873535156" lon="11.587119102478027">
+    <name>147039</name>
+  </wpt>
+  <wpt lat="48.15464782714844" lon="11.435458183288574">
+    <name>130024</name>
+  </wpt>
+  <wpt lat="48.163551330566406" lon="11.439733505249023">
+    <name>129988</name>
+  </wpt>
+  <wpt lat="48.155662536621094" lon="11.432219505310059">
+    <name>130009</name>
+  </wpt>
+  <wpt lat="48.123634338378906" lon="11.479598045349121">
+    <name>147095</name>
+  </wpt>
+  <wpt lat="48.15778350830078" lon="11.430315971374512">
+    <name>130004</name>
+  </wpt>
+  <wpt lat="48.15742874145508" lon="11.41877269744873">
+    <name>130040</name>
+  </wpt>
+  <wpt lat="48.162025451660156" lon="11.442075729370117">
+    <name>129972</name>
+  </wpt>
+  <wpt lat="48.154937744140625" lon="11.430867195129395">
+    <name>130013</name>
+  </wpt>
+  <wpt lat="48.15658950805664" lon="11.4102201461792">
+    <name>130063</name>
+  </wpt>
+  <wpt lat="48.18134689331055" lon="11.434615135192871">
+    <name>129952</name>
+  </wpt>
+  <wpt lat="48.223392486572266" lon="11.359068870544434">
+    <name>132210</name>
+  </wpt>
+  <wpt lat="48.13761901855469" lon="11.758956909179688">
+    <name>146754</name>
+  </wpt>
+  <wpt lat="48.20583724975586" lon="11.391183853149414">
+    <name>132178</name>
+  </wpt>
+  <wpt lat="48.112693786621094" lon="11.567808151245117">
+    <name>147054</name>
+  </wpt>
+  <wpt lat="48.19208908081055" lon="11.416290283203125">
+    <name>130119</name>
+  </wpt>
+  <wpt lat="48.15536880493164" lon="11.431000709533691">
+    <name>130011</name>
+  </wpt>
+  <wpt lat="48.1796875" lon="11.398838996887207">
+    <name>128237</name>
+  </wpt>
+  <wpt lat="48.160892486572266" lon="11.74661636352539">
+    <name>146732</name>
+  </wpt>
+  <wpt lat="48.22639846801758" lon="11.543713569641113">
+    <name>146606</name>
+  </wpt>
+  <wpt lat="48.161380767822266" lon="11.428799629211426">
+    <name>129839</name>
+  </wpt>
+  <wpt lat="48.167388916015625" lon="11.441143035888672">
+    <name>129960</name>
+  </wpt>
+  <wpt lat="48.25226593017578" lon="11.534402847290039">
+    <name>138543</name>
+  </wpt>
+  <wpt lat="48.155521392822266" lon="11.420629501342773">
+    <name>128283</name>
+  </wpt>
+  <wpt lat="48.124759674072266" lon="11.511476516723633">
+    <name>147087</name>
+  </wpt>
+  <wpt lat="48.223655700683594" lon="11.525911331176758">
+    <name>129055</name>
+  </wpt>
+  <wpt lat="48.2099494934082" lon="11.491890907287598">
+    <name>129037</name>
+  </wpt>
+  <wpt lat="48.19721984863281" lon="11.389925956726074">
+    <name>132166</name>
+  </wpt>
+  <wpt lat="48.126976013183594" lon="11.43697738647461">
+    <name>147116</name>
+  </wpt>
+  <wpt lat="48.1802978515625" lon="11.43144416809082">
+    <name>129936</name>
+  </wpt>
+  <wpt lat="48.146366119384766" lon="11.421955108642578">
+    <name>132136</name>
+  </wpt>
+  <wpt lat="48.215721130371094" lon="11.504316329956055">
+    <name>129042</name>
+  </wpt>
+  <wpt lat="48.17707443237305" lon="11.406723976135254">
+    <name>128247</name>
+  </wpt>
+  <wpt lat="48.155609130859375" lon="11.419639587402344">
+    <name>128281</name>
+  </wpt>
+  <wpt lat="48.161746978759766" lon="11.436477661132812">
+    <name>129993</name>
+  </wpt>
+  <wpt lat="48.155521392822266" lon="11.43220043182373">
+    <name>130010</name>
+  </wpt>
+  <wpt lat="48.22565841674805" lon="11.617555618286133">
+    <name>146642</name>
+  </wpt>
+  <wpt lat="48.167537689208984" lon="11.440686225891113">
+    <name>129959</name>
+  </wpt>
+  <wpt lat="48.21406555175781" lon="11.500916481018066">
+    <name>129045</name>
+  </wpt>
+  <wpt lat="48.15625" lon="11.41647720336914">
+    <name>128277</name>
+  </wpt>
+  <wpt lat="48.20607376098633" lon="11.39091682434082">
+    <name>132179</name>
+  </wpt>
+  <wpt lat="48.21953582763672" lon="11.371770858764648">
+    <name>129915</name>
+  </wpt>
+  <wpt lat="48.25366973876953" lon="11.533230781555176">
+    <name>138550</name>
+  </wpt>
+  <wpt lat="48.16910171508789" lon="11.414806365966797">
+    <name>128940</name>
+  </wpt>
+  <wpt lat="48.245033264160156" lon="11.47492790222168">
+    <name>132330</name>
+  </wpt>
+  <wpt lat="48.204532623291016" lon="11.448458671569824">
+    <name>129004</name>
+  </wpt>
+  <wpt lat="48.15622329711914" lon="11.42282772064209">
+    <name>129865</name>
+  </wpt>
+  <wpt lat="48.23014450073242" lon="11.42579460144043">
+    <name>132310</name>
+  </wpt>
+  <wpt lat="48.2373161315918" lon="11.356379508972168">
+    <name>132291</name>
+  </wpt>
+  <wpt lat="48.16567611694336" lon="11.415567398071289">
+    <name>128926</name>
+  </wpt>
+  <wpt lat="48.26639938354492" lon="11.538366317749023">
+    <name>129108</name>
+  </wpt>
+  <wpt lat="48.15699768066406" lon="11.424952507019043">
+    <name>129858</name>
+  </wpt>
+  <wpt lat="48.18272018432617" lon="11.388762474060059">
+    <name>128233</name>
+  </wpt>
+  <wpt lat="48.22649383544922" lon="11.540166854858398">
+    <name>129073</name>
+  </wpt>
+  <wpt lat="48.22220230102539" lon="11.354650497436523">
+    <name>132217</name>
+  </wpt>
+  <wpt lat="48.1610107421875" lon="11.438190460205078">
+    <name>129980</name>
+  </wpt>
+  <wpt lat="48.14206314086914" lon="11.417994499206543">
+    <name>132142</name>
+  </wpt>
+  <wpt lat="48.199134826660156" lon="11.436782836914062">
+    <name>128988</name>
+  </wpt>
+  <wpt lat="48.17734909057617" lon="11.730448722839355">
+    <name>146717</name>
+  </wpt>
+  <wpt lat="48.239315032958984" lon="11.450504302978516">
+    <name>132318</name>
+  </wpt>
+  <wpt lat="48.23284912109375" lon="11.441305160522461">
+    <name>132314</name>
+  </wpt>
+  <wpt lat="48.20368957519531" lon="11.393887519836426">
+    <name>132176</name>
+  </wpt>
+  <wpt lat="48.157100677490234" lon="11.414644241333008">
+    <name>128912</name>
+  </wpt>
+  <wpt lat="48.155609130859375" lon="11.419143676757812">
+    <name>128280</name>
+  </wpt>
+  <wpt lat="48.126399993896484" lon="11.437920570373535">
+    <name>147115</name>
+  </wpt>
+  <wpt lat="48.250606536865234" lon="11.48232650756836">
+    <name>138504</name>
+  </wpt>
+  <wpt lat="48.12887954711914" lon="11.43274974822998">
+    <name>147121</name>
+  </wpt>
+  <wpt lat="48.123046875" lon="11.519389152526855">
+    <name>147083</name>
+  </wpt>
+  <wpt lat="48.12375259399414" lon="11.487624168395996">
+    <name>147094</name>
+  </wpt>
+  <wpt lat="48.244842529296875" lon="11.47567081451416">
+    <name>132331</name>
+  </wpt>
+  <wpt lat="48.21014404296875" lon="11.64717960357666">
+    <name>146657</name>
+  </wpt>
+  <wpt lat="48.209285736083984" lon="11.48303508758545">
+    <name>129029</name>
+  </wpt>
+  <wpt lat="48.165191650390625" lon="11.433122634887695">
+    <name>129830</name>
+  </wpt>
+  <wpt lat="48.16837692260742" lon="11.415733337402344">
+    <name>128936</name>
+  </wpt>
+  <wpt lat="48.14543151855469" lon="11.421003341674805">
+    <name>132153</name>
+  </wpt>
+  <wpt lat="48.204437255859375" lon="11.451411247253418">
+    <name>129003</name>
+  </wpt>
+  <wpt lat="48.204864501953125" lon="11.42429256439209">
+    <name>146573</name>
+  </wpt>
+  <wpt lat="48.21617126464844" lon="11.377541542053223">
+    <name>129916</name>
+  </wpt>
+  <wpt lat="48.155555725097656" lon="11.42264175415039">
+    <name>128288</name>
+  </wpt>
+  <wpt lat="48.25620651245117" lon="11.474527359008789">
+    <name>132348</name>
+  </wpt>
+  <wpt lat="48.15984344482422" lon="11.42409610748291">
+    <name>129850</name>
+  </wpt>
+  <wpt lat="48.16008758544922" lon="11.417743682861328">
+    <name>130046</name>
+  </wpt>
+  <wpt lat="48.256141662597656" lon="11.5331392288208">
+    <name>129099</name>
+  </wpt>
+  <wpt lat="48.19060134887695" lon="11.388355255126953">
+    <name>132158</name>
+  </wpt>
+  <wpt lat="48.1568717956543" lon="11.424266815185547">
+    <name>129859</name>
+  </wpt>
+  <wpt lat="48.19114303588867" lon="11.375065803527832">
+    <name>128226</name>
+  </wpt>
+  <wpt lat="48.12407684326172" lon="11.448719024658203">
+    <name>147106</name>
+  </wpt>
+  <wpt lat="48.20178985595703" lon="11.438440322875977">
+    <name>128990</name>
+  </wpt>
+  <wpt lat="48.2557258605957" lon="11.470643043518066">
+    <name>132341</name>
+  </wpt>
+  <wpt lat="48.157100677490234" lon="11.411153793334961">
+    <name>130062</name>
+  </wpt>
+  <wpt lat="48.14345932006836" lon="11.420699119567871">
+    <name>132146</name>
+  </wpt>
+  <wpt lat="48.16349792480469" lon="11.437353134155273">
+    <name>129984</name>
+  </wpt>
+  <wpt lat="48.157962799072266" lon="11.425047874450684">
+    <name>129854</name>
+  </wpt>
+  <wpt lat="48.16022491455078" lon="11.414629936218262">
+    <name>128269</name>
+  </wpt>
+  <wpt lat="48.20321273803711" lon="11.391849517822266">
+    <name>132174</name>
+  </wpt>
+  <wpt lat="48.240264892578125" lon="11.373205184936523">
+    <name>132296</name>
+  </wpt>
+  <wpt lat="48.27292251586914" lon="11.543965339660645">
+    <name>129109</name>
+  </wpt>
+  <wpt lat="48.20193862915039" lon="11.389888763427734">
+    <name>132171</name>
+  </wpt>
+  <wpt lat="48.180641174316406" lon="11.392782211303711">
+    <name>128235</name>
+  </wpt>
+  <wpt lat="48.166259765625" lon="11.441752433776855">
+    <name>129962</name>
+  </wpt>
+  <wpt lat="48.18208694458008" lon="11.389562606811523">
+    <name>128234</name>
+  </wpt>
+  <wpt lat="48.181819915771484" lon="11.433615684509277">
+    <name>129954</name>
+  </wpt>
+  <wpt lat="48.187320709228516" lon="11.436917304992676">
+    <name>128975</name>
+  </wpt>
+  <wpt lat="48.22175216674805" lon="11.361953735351562">
+    <name>132208</name>
+  </wpt>
+  <wpt lat="48.23203659057617" lon="11.542080879211426">
+    <name>129083</name>
+  </wpt>
+  <wpt lat="48.16006088256836" lon="11.415363311767578">
+    <name>130048</name>
+  </wpt>
+  <wpt lat="48.22883605957031" lon="11.589791297912598">
+    <name>146622</name>
+  </wpt>
+  <wpt lat="48.16285705566406" lon="11.432228088378906">
+    <name>129835</name>
+  </wpt>
+  <wpt lat="48.165409088134766" lon="11.412210464477539">
+    <name>128261</name>
+  </wpt>
+  <wpt lat="48.2369384765625" lon="11.394429206848145">
+    <name>132302</name>
+  </wpt>
+  <wpt lat="48.186790466308594" lon="11.382305145263672">
+    <name>128229</name>
+  </wpt>
+  <wpt lat="48.2596321105957" lon="11.534453392028809">
+    <name>129104</name>
+  </wpt>
+  <wpt lat="48.19427490234375" lon="11.41264820098877">
+    <name>129926</name>
+  </wpt>
+  <wpt lat="48.194393157958984" lon="11.365962028503418">
+    <name>128221</name>
+  </wpt>
+  <wpt lat="48.200531005859375" lon="11.437392234802246">
+    <name>128989</name>
+  </wpt>
+  <wpt lat="48.111854553222656" lon="11.570521354675293">
+    <name>147052</name>
+  </wpt>
+  <wpt lat="48.15791320800781" lon="11.749157905578613">
+    <name>146736</name>
+  </wpt>
+  <wpt lat="48.13662338256836" lon="11.425398826599121">
+    <name>147141</name>
+  </wpt>
+  <wpt lat="48.18302536010742" lon="11.434365272521973">
+    <name>128969</name>
+  </wpt>
+  <wpt lat="48.16131591796875" lon="11.425256729125977">
+    <name>129844</name>
+  </wpt>
+  <wpt lat="48.1318359375" lon="11.427037239074707">
+    <name>147130</name>
+  </wpt>
+  <wpt lat="48.173858642578125" lon="11.4298095703125">
+    <name>129816</name>
+  </wpt>
+  <wpt lat="48.225215911865234" lon="11.532767295837402">
+    <name>129069</name>
+  </wpt>
+  <wpt lat="48.171966552734375" lon="11.431618690490723">
+    <name>129820</name>
+  </wpt>
+  <wpt lat="48.16215896606445" lon="11.43102741241455">
+    <name>129836</name>
+  </wpt>
+  <wpt lat="48.1226806640625" lon="11.519332885742188">
+    <name>147082</name>
+  </wpt>
+  <wpt lat="48.163822174072266" lon="11.433523178100586">
+    <name>129833</name>
+  </wpt>
+  <wpt lat="48.163360595703125" lon="11.4137544631958">
+    <name>128264</name>
+  </wpt>
+  <wpt lat="48.25318908691406" lon="11.532567977905273">
+    <name>129100</name>
+  </wpt>
+  <wpt lat="48.228553771972656" lon="11.542908668518066">
+    <name>129075</name>
+  </wpt>
+  <wpt lat="48.17267990112305" lon="11.407049179077148">
+    <name>128252</name>
+  </wpt>
+  <wpt lat="48.2298698425293" lon="11.542994499206543">
+    <name>129076</name>
+  </wpt>
+  <wpt lat="48.09516143798828" lon="11.748444557189941">
+    <name>146777</name>
+  </wpt>
+  <wpt lat="48.173851013183594" lon="11.419872283935547">
+    <name>128950</name>
+  </wpt>
+  <wpt lat="48.23818588256836" lon="11.359378814697266">
+    <name>132292</name>
+  </wpt>
+  <wpt lat="48.12542724609375" lon="11.497964859008789">
+    <name>147091</name>
+  </wpt>
+  <wpt lat="48.11146926879883" lon="11.5432710647583">
+    <name>147063</name>
+  </wpt>
+  <wpt lat="48.209571838378906" lon="11.478721618652344">
+    <name>129024</name>
+  </wpt>
+  <wpt lat="48.15641403198242" lon="11.411934852600098">
+    <name>130064</name>
+  </wpt>
+  <wpt lat="48.22858810424805" lon="11.60107421875">
+    <name>146626</name>
+  </wpt>
+  <wpt lat="48.11343765258789" lon="11.7568998336792">
+    <name>146771</name>
+  </wpt>
+  <wpt lat="48.221961975097656" lon="11.354917526245117">
+    <name>132219</name>
+  </wpt>
+  <wpt lat="48.161888122558594" lon="11.443370819091797">
+    <name>129968</name>
+  </wpt>
+  <wpt lat="48.19585037231445" lon="11.436840057373047">
+    <name>128984</name>
+  </wpt>
+  <wpt lat="48.151954650878906" lon="11.419822692871094">
+    <name>132130</name>
+  </wpt>
+  <wpt lat="48.25344467163086" lon="11.497037887573242">
+    <name>138520</name>
+  </wpt>
+  <wpt lat="48.16059112548828" lon="11.420144081115723">
+    <name>130045</name>
+  </wpt>
+  <wpt lat="48.12527847290039" lon="11.449774742126465">
+    <name>147103</name>
+  </wpt>
+  <wpt lat="48.13046646118164" lon="11.42849349975586">
+    <name>147127</name>
+  </wpt>
+  <wpt lat="48.170616149902344" lon="11.4077730178833">
+    <name>128254</name>
+  </wpt>
+  <wpt lat="48.241397857666016" lon="11.535138130187988">
+    <name>129090</name>
+  </wpt>
+  <wpt lat="48.197452545166016" lon="11.354342460632324">
+    <name>128215</name>
+  </wpt>
+  <wpt lat="48.20442199707031" lon="11.443488121032715">
+    <name>146586</name>
+  </wpt>
+  <wpt lat="48.24631118774414" lon="11.475956916809082">
+    <name>138494</name>
+  </wpt>
+  <wpt lat="48.16832733154297" lon="11.437868118286133">
+    <name>129956</name>
+  </wpt>
+  <wpt lat="48.17402267456055" lon="11.407696723937988">
+    <name>128251</name>
+  </wpt>
+  <wpt lat="48.21870422363281" lon="11.367658615112305">
+    <name>132205</name>
+  </wpt>
+  <wpt lat="48.15459060668945" lon="11.43441104888916">
+    <name>130023</name>
+  </wpt>
+  <wpt lat="48.09287643432617" lon="11.746931076049805">
+    <name>146778</name>
+  </wpt>
+  <wpt lat="48.21126174926758" lon="11.49671745300293">
+    <name>129034</name>
+  </wpt>
+  <wpt lat="48.197635650634766" lon="11.436440467834473">
+    <name>128986</name>
+  </wpt>
+  <wpt lat="48.26946258544922" lon="11.540938377380371">
+    <name>129106</name>
+  </wpt>
+  <wpt lat="48.16826629638672" lon="11.41601276397705">
+    <name>128935</name>
+  </wpt>
+  <wpt lat="48.22732925415039" lon="11.541537284851074">
+    <name>129074</name>
+  </wpt>
+  <wpt lat="48.107391357421875" lon="11.754786491394043">
+    <name>146773</name>
+  </wpt>
+  <wpt lat="48.20823287963867" lon="11.381088256835938">
+    <name>132187</name>
+  </wpt>
+  <wpt lat="48.16719436645508" lon="11.41550350189209">
+    <name>128930</name>
+  </wpt>
+  <wpt lat="48.2391242980957" lon="11.363492012023926">
+    <name>132293</name>
+  </wpt>
+  <wpt lat="48.14021682739258" lon="11.758528709411621">
+    <name>146742</name>
+  </wpt>
+  <wpt lat="48.16976547241211" lon="11.408915519714355">
+    <name>128255</name>
+  </wpt>
+  <wpt lat="48.224857330322266" lon="11.530540466308594">
+    <name>129059</name>
+  </wpt>
+  <wpt lat="48.20924758911133" lon="11.378993034362793">
+    <name>132190</name>
+  </wpt>
+  <wpt lat="48.1754264831543" lon="11.754337310791016" />
+  <wpt lat="48.13496780395508" lon="11.425169944763184">
+    <name>147138</name>
+  </wpt>
+  <wpt lat="48.209625244140625" lon="11.468353271484375">
+    <name>129020</name>
+  </wpt>
+  <wpt lat="48.193843841552734" lon="11.36777114868164">
+    <name>128222</name>
+  </wpt>
+  <wpt lat="48.15608596801758" lon="11.416333198547363">
+    <name>130069</name>
+  </wpt>
+  <wpt lat="48.16012191772461" lon="11.42037296295166">
+    <name>130044</name>
+  </wpt>
+  <wpt lat="48.175479888916016" lon="11.427002906799316">
+    <name>130124</name>
+  </wpt>
+  <wpt lat="48.22978973388672" lon="11.542709350585938">
+    <name>129081</name>
+  </wpt>
+  <wpt lat="48.222999572753906" lon="11.356821060180664">
+    <name>132213</name>
+  </wpt>
+  <wpt lat="48.157081604003906" lon="11.428582191467285">
+    <name>130005</name>
+  </wpt>
+  <wpt lat="48.111663818359375" lon="11.574806213378906">
+    <name>147049</name>
+  </wpt>
+  <wpt lat="48.202857971191406" lon="11.439945220947266">
+    <name>128994</name>
+  </wpt>
+  <wpt lat="48.16080856323242" lon="11.426152229309082">
+    <name>129843</name>
+  </wpt>
+  <wpt lat="48.20302200317383" lon="11.439850807189941">
+    <name>128998</name>
+  </wpt>
+  <wpt lat="48.125675201416016" lon="11.505277633666992">
+    <name>147089</name>
+  </wpt>
+  <wpt lat="48.15497589111328" lon="11.43635368347168">
+    <name>130026</name>
+  </wpt>
+  <wpt lat="48.17649841308594" lon="11.407581329345703">
+    <name>128248</name>
+  </wpt>
+  <wpt lat="48.22574996948242" lon="11.536452293395996">
+    <name>129071</name>
+  </wpt>
+  <wpt lat="48.22504806518555" lon="11.541051864624023">
+    <name>129066</name>
+  </wpt>
+  <wpt lat="48.2012939453125" lon="11.390402793884277">
+    <name>132170</name>
+  </wpt>
+  <wpt lat="48.15543746948242" lon="11.423273086547852">
+    <name>129863</name>
+  </wpt>
+  <wpt lat="48.25156021118164" lon="11.487468719482422">
+    <name>138516</name>
+  </wpt>
+  <wpt lat="48.16895294189453" lon="11.414844512939453">
+    <name>128939</name>
+  </wpt>
+  <wpt lat="48.13386535644531" lon="11.424636840820312">
+    <name>147136</name>
+  </wpt>
+  <wpt lat="48.1915397644043" lon="11.70136833190918">
+    <name>146694</name>
+  </wpt>
+  <wpt lat="48.255916595458984" lon="11.474270820617676">
+    <name>132345</name>
+  </wpt>
+  <wpt lat="48.2448844909668" lon="11.4764986038208">
+    <name>132332</name>
+  </wpt>
+  <wpt lat="48.209190368652344" lon="11.486063003540039">
+    <name>129035</name>
+  </wpt>
+  <wpt lat="48.179073333740234" lon="11.398971557617188">
+    <name>128239</name>
+  </wpt>
+  <wpt lat="48.156654357910156" lon="11.411763191223145">
+    <name>130065</name>
+  </wpt>
+  <wpt lat="48.162132263183594" lon="11.41381549835205">
+    <name>128917</name>
+  </wpt>
+  <wpt lat="48.19449234008789" lon="11.686943054199219">
+    <name>146687</name>
+  </wpt>
+  <wpt lat="48.16156005859375" lon="11.424762725830078">
+    <name>129845</name>
+  </wpt>
+  <wpt lat="48.12785339355469" lon="11.435206413269043">
+    <name>147117</name>
+  </wpt>
+  <wpt lat="48.178401947021484" lon="11.401885986328125">
+    <name>128241</name>
+  </wpt>
+  <wpt lat="48.210811614990234" lon="11.377774238586426">
+    <name>132191</name>
+  </wpt>
+  <wpt lat="48.2448844909668" lon="11.476212501525879">
+    <name>132333</name>
+  </wpt>
+  <wpt lat="48.18891525268555" lon="11.710309982299805">
+    <name>146704</name>
+  </wpt>
+  <wpt lat="48.20582580566406" lon="11.39538288116455">
+    <name>130115</name>
+  </wpt>
+  <wpt lat="48.192012786865234" lon="11.388593673706055">
+    <name>132162</name>
+  </wpt>
+  <wpt lat="48.247257232666016" lon="11.533167839050293">
+    <name>129092</name>
+  </wpt>
+  <wpt lat="48.25257110595703" lon="11.529831886291504">
+    <name>138540</name>
+  </wpt>
+  <wpt lat="48.12417221069336" lon="11.447118759155273">
+    <name>147107</name>
+  </wpt>
+  <wpt lat="48.1536865234375" lon="11.418755531311035">
+    <name>132127</name>
+  </wpt>
+  <wpt lat="48.252685546875" lon="11.495067596435547">
+    <name>138519</name>
+  </wpt>
+  <wpt lat="48.097740173339844" lon="11.750015258789062">
+    <name>146776</name>
+  </wpt>
+  <wpt lat="48.20415496826172" lon="11.440888404846191">
+    <name>146584</name>
+  </wpt>
+  <wpt lat="48.16635513305664" lon="11.432494163513184">
+    <name>129828</name>
+  </wpt>
+  <wpt lat="48.16447830200195" lon="11.414944648742676">
+    <name>128923</name>
+  </wpt>
+  <wpt lat="48.10979461669922" lon="11.578605651855469">
+    <name>147046</name>
+  </wpt>
+  <wpt lat="48.242488861083984" lon="11.468157768249512">
+    <name>132325</name>
+  </wpt>
+  <wpt lat="48.191253662109375" lon="11.38853645324707">
+    <name>132161</name>
+  </wpt>
+  <wpt lat="48.15609359741211" lon="11.416790962219238">
+    <name>130071</name>
+  </wpt>
+  <wpt lat="48.189022064208984" lon="11.420875549316406">
+    <name>130120</name>
+  </wpt>
+  <wpt lat="48.25676727294922" lon="11.470014572143555">
+    <name>132355</name>
+  </wpt>
+  <wpt lat="48.10552215576172" lon="11.581433296203613">
+    <name>147043</name>
+  </wpt>
+  <wpt lat="48.11223602294922" lon="11.55681037902832">
+    <name>147060</name>
+  </wpt>
+  <wpt lat="48.1685791015625" lon="11.410266876220703">
+    <name>128256</name>
+  </wpt>
+  <wpt lat="48.25026321411133" lon="11.532824516296387">
+    <name>129095</name>
+  </wpt>
+  <wpt lat="48.143333435058594" lon="11.418928146362305">
+    <name>132144</name>
+  </wpt>
+  <wpt lat="48.22443771362305" lon="11.539909362792969">
+    <name>129065</name>
+  </wpt>
+  <wpt lat="48.19767761230469" lon="11.43670654296875">
+    <name>128987</name>
+  </wpt>
+  <wpt lat="48.1702766418457" lon="11.435046195983887">
+    <name>129823</name>
+  </wpt>
+  <wpt lat="48.23114013671875" lon="11.414167404174805">
+    <name>132307</name>
+  </wpt>
+  <wpt lat="48.12358093261719" lon="11.474769592285156">
+    <name>147096</name>
+  </wpt>
+  <wpt lat="48.1251220703125" lon="11.447375297546387">
+    <name>147108</name>
+  </wpt>
+  <wpt lat="48.19512939453125" lon="11.363696098327637">
+    <name>128220</name>
+  </wpt>
+  <wpt lat="48.12941360473633" lon="11.431607246398926">
+    <name>147123</name>
+  </wpt>
+  <wpt lat="48.22801208496094" lon="11.578678131103516">
+    <name>146619</name>
+  </wpt>
+  <wpt lat="48.14902114868164" lon="11.420907974243164">
+    <name>132132</name>
+  </wpt>
+  <wpt lat="48.26192092895508" lon="11.476813316345215">
+    <name>132352</name>
+  </wpt>
+  <wpt lat="48.24140930175781" lon="11.453845977783203">
+    <name>132320</name>
+  </wpt>
+  <wpt lat="48.11006546020508" lon="11.519404411315918">
+    <name>147074</name>
+  </wpt>
+  <wpt lat="48.20077133178711" lon="11.390555381774902">
+    <name>132169</name>
+  </wpt>
+  <wpt lat="48.165382385253906" lon="11.411848068237305">
+    <name>128260</name>
+  </wpt>
+  <wpt lat="48.23289108276367" lon="11.406712532043457">
+    <name>132305</name>
+  </wpt>
+  <wpt lat="48.204288482666016" lon="11.4422025680542">
+    <name>146587</name>
+  </wpt>
+  <wpt lat="48.16414260864258" lon="11.433693885803223">
+    <name>129832</name>
+  </wpt>
+  <wpt lat="48.11088180541992" lon="11.756157875061035">
+    <name>146772</name>
+  </wpt>
+  <wpt lat="48.20903396606445" lon="11.483692169189453">
+    <name>129026</name>
+  </wpt>
+  <wpt lat="48.173336029052734" lon="11.430018424987793">
+    <name>129818</name>
+  </wpt>
+  <wpt lat="48.19340515136719" lon="11.692255973815918">
+    <name>146688</name>
+  </wpt>
+  <wpt lat="48.15884017944336" lon="11.415287017822266">
+    <name>130053</name>
+  </wpt>
+  <wpt lat="48.1573371887207" lon="11.415735244750977">
+    <name>128275</name>
+  </wpt>
+  <wpt lat="48.204376220703125" lon="11.39306926727295">
+    <name>132177</name>
+  </wpt>
+  <wpt lat="48.222469329833984" lon="11.35586929321289">
+    <name>132214</name>
+  </wpt>
+  <wpt lat="48.227447509765625" lon="11.609843254089355">
+    <name>146634</name>
+  </wpt>
+  <wpt lat="48.158321380615234" lon="11.413191795349121">
+    <name>130057</name>
+  </wpt>
+  <wpt lat="48.2025032043457" lon="11.400165557861328">
+    <name>129922</name>
+  </wpt>
+  <wpt lat="48.15591812133789" lon="11.435287475585938">
+    <name>130020</name>
+  </wpt>
+  <wpt lat="48.12696075439453" lon="11.759300231933594">
+    <name>146757</name>
+  </wpt>
+  <wpt lat="48.18325424194336" lon="11.429717063903809">
+    <name>130123</name>
+  </wpt>
+  <wpt lat="48.16288757324219" lon="11.437276840209961">
+    <name>129983</name>
+  </wpt>
+  <wpt lat="48.23741149902344" lon="11.448446273803711">
+    <name>132317</name>
+  </wpt>
+  <wpt lat="48.12556457519531" lon="11.450488090515137">
+    <name>147101</name>
+  </wpt>
+  <wpt lat="48.224586486816406" lon="11.530768394470215">
+    <name>129056</name>
+  </wpt>
+  <wpt lat="48.162471771240234" lon="11.442952156066895">
+    <name>129974</name>
+  </wpt>
+  <wpt lat="48.18100357055664" lon="11.433415412902832">
+    <name>129950</name>
+  </wpt>
+  <wpt lat="48.125064849853516" lon="11.442891120910645">
+    <name>147112</name>
+  </wpt>
+  <wpt lat="48.156776428222656" lon="11.42016315460205">
+    <name>130036</name>
+  </wpt>
+  <wpt lat="48.21244430541992" lon="11.498373985290527">
+    <name>129044</name>
+  </wpt>
+  <wpt lat="48.183345794677734" lon="11.429159164428711">
+    <name>129933</name>
+  </wpt>
+  <wpt lat="48.14790725708008" lon="11.421308517456055">
+    <name>132133</name>
+  </wpt>
+  <wpt lat="48.206764221191406" lon="11.395126342773438">
+    <name>146551</name>
+  </wpt>
+  <wpt lat="48.225502014160156" lon="11.534652709960938">
+    <name>129070</name>
+  </wpt>
+  <wpt lat="48.2260856628418" lon="11.539873123168945">
+    <name>146602</name>
+  </wpt>
+  <wpt lat="48.12397766113281" lon="11.462172508239746">
+    <name>147098</name>
+  </wpt>
+  <wpt lat="48.1573486328125" lon="11.414244651794434">
+    <name>128913</name>
+  </wpt>
+  <wpt lat="48.25215148925781" lon="11.49281120300293">
+    <name>138518</name>
+  </wpt>
+  <wpt lat="48.26957702636719" lon="11.540679931640625">
+    <name>129107</name>
+  </wpt>
+  <wpt lat="48.22251510620117" lon="11.626355171203613">
+    <name>146644</name>
+  </wpt>
+  <wpt lat="48.23027801513672" lon="11.421852111816406">
+    <name>132309</name>
+  </wpt>
+  <wpt lat="48.204708099365234" lon="11.453545570373535">
+    <name>129009</name>
+  </wpt>
+  <wpt lat="48.160640716552734" lon="11.427249908447266">
+    <name>130127</name>
+  </wpt>
+  <wpt lat="48.20856475830078" lon="11.390711784362793">
+    <name>130114</name>
+  </wpt>
+  <wpt lat="48.18745040893555" lon="11.714194297790527">
+    <name>146705</name>
+  </wpt>
+  <wpt lat="48.155853271484375" lon="11.42308235168457">
+    <name>129864</name>
+  </wpt>
+  <wpt lat="48.15766525268555" lon="11.419611930847168">
+    <name>130037</name>
+  </wpt>
+  <wpt lat="48.184043884277344" lon="11.435145378112793">
+    <name>128971</name>
+  </wpt>
+  <wpt lat="48.20144271850586" lon="11.663862228393555">
+    <name>146675</name>
+  </wpt>
+  <wpt lat="48.17431640625" lon="11.423211097717285">
+    <name>128956</name>
+  </wpt>
+  <wpt lat="48.169593811035156" lon="11.436208724975586">
+    <name>129824</name>
+  </wpt>
+  <wpt lat="48.242431640625" lon="11.462272644042969">
+    <name>132323</name>
+  </wpt>
+  <wpt lat="48.14714050292969" lon="11.421631813049316">
+    <name>132134</name>
+  </wpt>
+  <wpt lat="48.15127182006836" lon="11.754128456115723">
+    <name>146738</name>
+  </wpt>
+  <wpt lat="48.250244140625" lon="11.532453536987305">
+    <name>129096</name>
+  </wpt>
+  <wpt lat="48.10102081298828" lon="11.75184440612793">
+    <name>146775</name>
+  </wpt>
+  <wpt lat="48.1557731628418" lon="11.418363571166992">
+    <name>128279</name>
+  </wpt>
+  <wpt lat="48.244598388671875" lon="11.474013328552246">
+    <name>132328</name>
+  </wpt>
+  <wpt lat="48.16704559326172" lon="11.441410064697266">
+    <name>129961</name>
+  </wpt>
+  <wpt lat="48.162410736083984" lon="11.414386749267578">
+    <name>128919</name>
+  </wpt>
+  <wpt lat="48.16281509399414" lon="11.43921947479248">
+    <name>129986</name>
+  </wpt>
+  <wpt lat="48.15654754638672" lon="11.422792434692383">
+    <name>130032</name>
+  </wpt>
+  <wpt lat="48.22201156616211" lon="11.354669570922852">
+    <name>132218</name>
+  </wpt>
+  <wpt lat="48.206912994384766" lon="11.385563850402832">
+    <name>132183</name>
+  </wpt>
+  <wpt lat="48.248687744140625" lon="11.478499412536621">
+    <name>138500</name>
+  </wpt>
+  <wpt lat="48.20979690551758" lon="11.478750228881836">
+    <name>129027</name>
+  </wpt>
+  <wpt lat="48.164146423339844" lon="11.435867309570312">
+    <name>129996</name>
+  </wpt>
+  <wpt lat="48.16059112548828" lon="11.439332962036133">
+    <name>129979</name>
+  </wpt>
+  <wpt lat="48.11083984375" lon="11.541899681091309">
+    <name>147065</name>
+  </wpt>
+  <wpt lat="48.22285842895508" lon="11.521598815917969">
+    <name>129057</name>
+  </wpt>
+  <wpt lat="48.16055679321289" lon="11.412753105163574">
+    <name>130055</name>
+  </wpt>
+  <wpt lat="48.10439682006836" lon="11.753558158874512">
+    <name>146774</name>
+  </wpt>
+  <wpt lat="48.19827651977539" lon="11.390192985534668">
+    <name>132167</name>
+  </wpt>
+  <wpt lat="48.211578369140625" lon="11.385669708251953">
+    <name>130113</name>
+  </wpt>
+  <wpt lat="48.25768280029297" lon="11.474699020385742">
+    <name>132349</name>
+  </wpt>
+  <wpt lat="48.168113708496094" lon="11.438267707824707">
+    <name>129957</name>
+  </wpt>
+  <wpt lat="48.21900939941406" lon="11.367182731628418">
+    <name>132206</name>
+  </wpt>
+  <wpt lat="48.15990447998047" lon="11.41465950012207">
+    <name>130049</name>
+  </wpt>
+  <wpt lat="48.15774154663086" lon="11.425199508666992">
+    <name>129856</name>
+  </wpt>
+  <wpt lat="48.1593132019043" lon="11.413077354431152">
+    <name>130056</name>
+  </wpt>
+  <wpt lat="48.16736602783203" lon="11.411163330078125">
+    <name>128257</name>
+  </wpt>
+  <wpt lat="48.252437591552734" lon="11.532059669494629">
+    <name>138541</name>
+  </wpt>
+  <wpt lat="48.18940353393555" lon="11.387755393981934">
+    <name>132157</name>
+  </wpt>
+  <wpt lat="48.251827239990234" lon="11.49038314819336">
+    <name>138517</name>
+  </wpt>
+  <wpt lat="48.181785583496094" lon="11.434329986572266">
+    <name>129953</name>
+  </wpt>
+  <wpt lat="48.19928741455078" lon="11.405449867248535">
+    <name>130117</name>
+  </wpt>
+  <wpt lat="48.0991096496582" lon="11.585604667663574">
+    <name>147040</name>
+  </wpt>
+  <wpt lat="48.25324630737305" lon="11.532938957214355">
+    <name>129097</name>
+  </wpt>
+  <wpt lat="48.20951461791992" lon="11.481093406677246">
+    <name>129028</name>
+  </wpt>
+  <wpt lat="48.12358093261719" lon="11.518388748168945">
+    <name>147085</name>
+  </wpt>
+  <wpt lat="48.22489547729492" lon="11.532710075378418">
+    <name>129060</name>
+  </wpt>
+  <wpt lat="48.12947463989258" lon="11.43083667755127">
+    <name>147124</name>
+  </wpt>
+  <wpt lat="48.26213073730469" lon="11.475298881530762">
+    <name>132364</name>
+  </wpt>
+  <wpt lat="48.180545806884766" lon="11.432272911071777">
+    <name>129943</name>
+  </wpt>
+  <wpt lat="48.20424270629883" lon="11.443469047546387">
+    <name>129000</name>
+  </wpt>
+  <wpt lat="48.22203063964844" lon="11.367988586425781">
+    <name>130110</name>
+  </wpt>
+  <wpt lat="48.181976318359375" lon="11.431831359863281">
+    <name>130122</name>
+  </wpt>
+  <wpt lat="48.19807052612305" lon="11.673717498779297">
+    <name>146677</name>
+  </wpt>
+  <wpt lat="48.22579574584961" lon="11.361201286315918">
+    <name>129913</name>
+  </wpt>
+  <wpt lat="48.22685623168945" lon="11.558568000793457">
+    <name>146614</name>
+  </wpt>
+  <wpt lat="48.254188537597656" lon="11.499837875366211">
+    <name>138523</name>
+  </wpt>
+  <wpt lat="48.26298141479492" lon="11.536539077758789">
+    <name>129102</name>
+  </wpt>
+  <wpt lat="48.16685104370117" lon="11.432703971862793">
+    <name>129827</name>
+  </wpt>
+  <wpt lat="48.190494537353516" lon="11.437545776367188">
+    <name>128978</name>
+  </wpt>
+  <wpt lat="48.262760162353516" lon="11.46955680847168">
+    <name>132360</name>
+  </wpt>
+  <wpt lat="48.119537353515625" lon="11.517646789550781">
+    <name>147080</name>
+  </wpt>
+  <wpt lat="48.12519836425781" lon="11.508905410766602">
+    <name>147088</name>
+  </wpt>
+  <wpt lat="48.261959075927734" lon="11.476384162902832">
+    <name>132354</name>
+  </wpt>
+  <wpt lat="48.18551254272461" lon="11.384899139404297">
+    <name>132160</name>
+  </wpt>
+  <wpt lat="48.1555061340332" lon="11.422523498535156">
+    <name>128287</name>
+  </wpt>
+  <wpt lat="48.196380615234375" lon="11.359848022460938">
+    <name>128218</name>
+  </wpt>
+  <wpt lat="48.16059112548828" lon="11.440990447998047">
+    <name>129976</name>
+  </wpt>
+  <wpt lat="48.22603988647461" lon="11.538566589355469">
+    <name>129072</name>
+  </wpt>
+  <wpt lat="48.18092727661133" lon="11.434215545654297">
+    <name>129951</name>
+  </wpt>
+  <wpt lat="48.23321533203125" lon="11.541280746459961">
+    <name>129084</name>
+  </wpt>
+  <wpt lat="48.15467834472656" lon="11.418012619018555">
+    <name>132126</name>
+  </wpt>
+  <wpt lat="48.20778274536133" lon="11.65080738067627">
+    <name>146663</name>
+  </wpt>
+  <wpt lat="48.22206115722656" lon="11.35512638092041">
+    <name>132215</name>
+  </wpt>
+  <wpt lat="48.15450668334961" lon="11.4371337890625">
+    <name>130030</name>
+  </wpt>
+  <wpt lat="48.16447067260742" lon="11.433636665344238">
+    <name>129831</name>
+  </wpt>
+  <wpt lat="48.15625" lon="11.421810150146484">
+    <name>129861</name>
+  </wpt>
+  <wpt lat="48.167694091796875" lon="11.439696311950684">
+    <name>129958</name>
+  </wpt>
+  <wpt lat="48.240013122558594" lon="11.369776725769043">
+    <name>132295</name>
+  </wpt>
+  <wpt lat="48.19567108154297" lon="11.682172775268555">
+    <name>146679</name>
+  </wpt>
+  <wpt lat="48.252838134765625" lon="11.521404266357422">
+    <name>138537</name>
+  </wpt>
+  <wpt lat="48.25312042236328" lon="11.517091751098633">
+    <name>138536</name>
+  </wpt>
+  <wpt lat="48.16178512573242" lon="11.414077758789062">
+    <name>128267</name>
+  </wpt>
+  <wpt lat="48.20621109008789" lon="11.400668144226074">
+    <name>146553</name>
+  </wpt>
+  <wpt lat="48.25407028198242" lon="11.533059120178223">
+    <name>138548</name>
+  </wpt>
+  <wpt lat="48.142581939697266" lon="11.758014678955078">
+    <name>146741</name>
+  </wpt>
+  <wpt lat="48.20323181152344" lon="11.659547805786133">
+    <name>146665</name>
+  </wpt>
+  <wpt lat="48.1744499206543" lon="11.421674728393555">
+    <name>128954</name>
+  </wpt>
+  <wpt lat="48.20460510253906" lon="11.451411247253418">
+    <name>129005</name>
+  </wpt>
+  <wpt lat="48.188392639160156" lon="11.386641502380371">
+    <name>132155</name>
+  </wpt>
+  <wpt lat="48.181480407714844" lon="11.43312931060791">
+    <name>129944</name>
+  </wpt>
+  <wpt lat="48.166194915771484" lon="11.412018775939941">
+    <name>128258</name>
+  </wpt>
+  <wpt lat="48.20742416381836" lon="11.382231712341309">
+    <name>132185</name>
+  </wpt>
+</gpx>
+
Index: /trunk/src/org/openstreetmap/josm/Main.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/Main.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/Main.java	(revision 321)
@@ -0,0 +1,421 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm;
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.Rectangle;
+import java.awt.Toolkit;
+import java.awt.event.KeyEvent;
+import java.io.File;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.SortedMap;
+import java.util.StringTokenizer;
+import java.util.TreeMap;
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.swing.JComponent;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.KeyStroke;
+import javax.swing.UIManager;
+
+import org.openstreetmap.josm.actions.downloadtasks.DownloadGpsTask;
+import org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTask;
+import org.openstreetmap.josm.actions.mapmode.MapMode;
+import org.openstreetmap.josm.actions.search.SearchAction;
+import org.openstreetmap.josm.data.Bounds;
+import org.openstreetmap.josm.data.Preferences;
+import org.openstreetmap.josm.data.UndoRedoHandler;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.projection.Epsg4326;
+import org.openstreetmap.josm.data.projection.Projection;
+import org.openstreetmap.josm.gui.GettingStarted;
+import org.openstreetmap.josm.gui.MainMenu;
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.gui.PleaseWaitDialog;
+import org.openstreetmap.josm.gui.download.BoundingBoxSelection;
+import org.openstreetmap.josm.gui.download.DownloadDialog.DownloadTask;
+import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer.CommandQueueListener;
+import org.openstreetmap.josm.gui.preferences.TaggingPresetPreference;
+import org.openstreetmap.josm.gui.preferences.ToolbarPreferences;
+import org.openstreetmap.josm.plugins.PluginException;
+import org.openstreetmap.josm.plugins.PluginInformation;
+import org.openstreetmap.josm.plugins.PluginProxy;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+abstract public class Main {
+	/**
+	 * Global parent component for all dialogs and message boxes
+	 */
+	public static Component parent;
+	/**
+	 * Global application.
+	 */
+	public static Main main;
+	/**
+	 * The worker thread slave. This is for executing all long and intensive
+	 * calculations. The executed runnables are guaranteed to be executed seperatly
+	 * and sequenciel.
+	 */
+	public final static Executor worker = Executors.newSingleThreadExecutor();
+	/**
+	 * Global application preferences
+	 */
+	public static Preferences pref = new Preferences();
+	/**
+	 * The global dataset.
+	 */
+	public static DataSet ds = new DataSet();
+	/**
+	 * The projection method used.
+	 */
+	public static Projection proj;
+	/**
+	 * The MapFrame. Use setMapFrame to set or clear it.
+	 */
+	public static MapFrame map;
+	/**
+	 * All installed and loaded plugins (resp. their main classes)
+	 */
+	public final static Collection<PluginProxy> plugins = new LinkedList<PluginProxy>();
+	/**
+	 * The dialog that gets displayed during background task execution.
+	 */
+	public static PleaseWaitDialog pleaseWaitDlg;
+
+	/**
+	 * True, when in applet mode
+	 */
+	public static boolean applet = false;
+
+	/**
+	 * The toolbar preference control to register new actions.
+	 */
+	public static ToolbarPreferences toolbar = new ToolbarPreferences();
+
+
+	public UndoRedoHandler undoRedo = new UndoRedoHandler();
+
+	/**
+	 * The main menu bar at top of screen.
+	 */
+	public final MainMenu menu;
+
+
+
+
+	/**
+	 * Set or clear (if passed <code>null</code>) the map.
+	 */
+	public final void setMapFrame(final MapFrame map) {
+		MapFrame old = Main.map;
+		Main.map = map;
+		panel.setVisible(false);
+		panel.removeAll();
+		if (map != null)
+			map.fillPanel(panel);
+		else {
+			old.destroy();
+			panel.add(new GettingStarted(), BorderLayout.CENTER);
+		}
+		panel.setVisible(true);
+		redoUndoListener.commandChanged(0,0);
+
+		for (PluginProxy plugin : plugins)
+			plugin.mapFrameInitialized(old, map);
+	}
+
+	/**
+	 * Set the layer menu (changed when active layer changes).
+	 */
+	public final void setLayerMenu(Component[] entries) {
+		if (entries == null || entries.length == 0)
+			menu.layerMenu.setVisible(false);
+		else {
+			menu.layerMenu.removeAll();
+			for (Component c : entries)
+				menu.layerMenu.add(c);
+			menu.layerMenu.setVisible(true);
+		}
+	}
+
+	/**
+	 * Remove the specified layer from the map. If it is the last layer, remove the map as well.
+	 */
+	public final void removeLayer(final Layer layer) {
+		map.mapView.removeLayer(layer);
+		if (layer instanceof OsmDataLayer)
+			ds = new DataSet();
+		if (map.mapView.getAllLayers().isEmpty())
+			setMapFrame(null);
+	}
+
+
+	public Main() {
+		main = this;
+		contentPane.add(panel, BorderLayout.CENTER);
+		panel.add(new GettingStarted(), BorderLayout.CENTER);
+		menu = new MainMenu();
+
+		undoRedo.listenerCommands.add(redoUndoListener);
+		
+		// creating toolbar
+		contentPane.add(toolbar.control, BorderLayout.NORTH);
+
+		contentPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0), "Help");
+		contentPane.getActionMap().put("Help", menu.help);
+
+		TaggingPresetPreference.initialize();
+
+		toolbar.refreshToolbarControl();
+
+		toolbar.control.updateUI();
+		contentPane.updateUI();
+	}
+
+	/**
+	 * Load all plugins specified in preferences. If the parameter is <code>true</code>, all
+	 * early plugins are loaded (before constructor).
+	 */
+	public static void loadPlugins(boolean early) {
+		List<String> plugins = new LinkedList<String>();
+		if (Main.pref.hasKey("plugins"))
+			plugins.addAll(Arrays.asList(Main.pref.get("plugins").split(",")));
+		if (System.getProperty("josm.plugins") != null)
+			plugins.addAll(Arrays.asList(System.getProperty("josm.plugins").split(",")));
+		if (plugins.isEmpty())
+			return;
+		SortedMap<Integer, Collection<PluginInformation>> p = new TreeMap<Integer, Collection<PluginInformation>>();
+		for (String pluginName : plugins) {
+			PluginInformation info = PluginInformation.findPlugin(pluginName);
+			if (info != null) {
+				if (info.early != early)
+					continue;
+				if (!p.containsKey(info.stage))
+					p.put(info.stage, new LinkedList<PluginInformation>());
+				p.get(info.stage).add(info);
+			} else {
+				if (early)
+					System.out.println("Plugin not found: "+pluginName); // do not translate
+				else	
+					JOptionPane.showMessageDialog(Main.parent, tr("Plugin not found: {0}.", pluginName));
+			}
+		}
+		
+		// iterate all plugins and collect all libraries of all plugins:
+		List<URL> allPluginLibraries = new ArrayList<URL>();
+		for (Collection<PluginInformation> c : p.values())
+			for (PluginInformation info : c)
+				allPluginLibraries.addAll(info.libraries);
+		// create a classloader for all plugins:
+		URL[] jarUrls = new URL[allPluginLibraries.size()];
+		jarUrls = allPluginLibraries.toArray(jarUrls);
+		URLClassLoader pluginClassLoader = new URLClassLoader(jarUrls, Main.class.getClassLoader());
+		ImageProvider.sources.add(0, pluginClassLoader);
+
+		for (Collection<PluginInformation> c : p.values()) {
+			for (PluginInformation info : c) {
+				try {
+					Class<?> klass = info.loadClass(pluginClassLoader);
+					if (klass != null) {
+						System.out.println("loading "+info.name);
+						Main.plugins.add(info.load(klass));
+					}
+				} catch (PluginException e) {
+					e.printStackTrace();
+					if (early)
+						System.out.println("Could not load plugin: "+info.name); // do not translate
+					else
+						JOptionPane.showMessageDialog(Main.parent, tr("Could not load plugin {0}.", info.name));
+				}
+			}
+		}
+	}
+
+	/**
+	 * Add a new layer to the map. If no map exist, create one.
+	 */
+	public final void addLayer(final Layer layer) {
+		if (map == null) {
+			final MapFrame mapFrame = new MapFrame();
+			setMapFrame(mapFrame);
+			mapFrame.selectMapMode((MapMode)mapFrame.getDefaultButtonAction());
+			mapFrame.setVisible(true);
+			mapFrame.setVisibleDialogs();
+		}
+		map.mapView.addLayer(layer);
+	}
+	/**
+	 * @return The edit osm layer. If none exist, it will be created.
+	 */
+	public final OsmDataLayer editLayer() {
+		if (map == null || map.mapView.editLayer == null)
+			menu.newAction.actionPerformed(null);
+		return map.mapView.editLayer;
+	}
+
+
+
+
+	/**
+	 * Use this to register shortcuts to
+	 */
+	public static final JPanel contentPane = new JPanel(new BorderLayout());
+
+
+	////////////////////////////////////////////////////////////////////////////////////////
+	//  Implementation part
+	////////////////////////////////////////////////////////////////////////////////////////
+
+	public static JPanel panel = new JPanel(new BorderLayout());
+
+	protected static Rectangle bounds;
+
+	private final CommandQueueListener redoUndoListener = new CommandQueueListener(){
+		public void commandChanged(final int queueSize, final int redoSize) {
+			menu.undo.setEnabled(queueSize > 0);
+			menu.redo.setEnabled(redoSize > 0);
+		}
+	};
+	/**
+	 * Should be called before the main constructor to setup some parameter stuff
+	 * @param args The parsed argument list.
+	 */
+	public static void preConstructorInit(Map<String, Collection<String>> args) {
+		try {
+			Main.proj = (Projection)Class.forName(Main.pref.get("projection")).newInstance();
+		} catch (final Exception e) {
+			e.printStackTrace();
+			JOptionPane.showMessageDialog(null, tr("The projection could not be read from preferences. Using EPSG:4263."));
+			Main.proj = new Epsg4326();
+		}
+
+		try {
+			UIManager.setLookAndFeel(Main.pref.get("laf"));
+			contentPane.updateUI();
+			panel.updateUI();
+		} catch (final Exception e) {
+			e.printStackTrace();
+		}
+		UIManager.put("OptionPane.okIcon", ImageProvider.get("ok"));
+		UIManager.put("OptionPane.yesIcon", UIManager.get("OptionPane.okIcon"));
+		UIManager.put("OptionPane.cancelIcon", ImageProvider.get("cancel"));
+		UIManager.put("OptionPane.noIcon", UIManager.get("OptionPane.cancelIcon"));
+
+		Dimension screenDimension = Toolkit.getDefaultToolkit().getScreenSize();
+		if (args.containsKey("geometry")) {
+			String geometry = args.get("geometry").iterator().next();
+			final Matcher m = Pattern.compile("(\\d+)x(\\d+)(([+-])(\\d+)([+-])(\\d+))?").matcher(geometry);
+			if (m.matches()) {
+				int w = Integer.valueOf(m.group(1));
+				int h = Integer.valueOf(m.group(2));
+				int x = 0, y = 0;
+				if (m.group(3) != null) {
+					x = Integer.valueOf(m.group(5));
+					y = Integer.valueOf(m.group(7));
+					if (m.group(4).equals("-"))
+						x = screenDimension.width - x - w;
+					if (m.group(6).equals("-"))
+						y = screenDimension.height - y - h;
+				}
+				bounds = new Rectangle(x,y,w,h);
+			} else
+				System.out.println("Ignoring malformed geometry: "+geometry);
+		}
+		if (bounds == null)
+			bounds = !args.containsKey("no-fullscreen") ? new Rectangle(0,0,screenDimension.width,screenDimension.height) : new Rectangle(1000,740);
+
+			// preinitialize a wait dialog for all early downloads (e.g. via command line)
+			pleaseWaitDlg = new PleaseWaitDialog(null);
+	}
+
+	public void postConstructorProcessCmdLine(Map<String, Collection<String>> args) {
+		// initialize the pleaseWaitDialog with the application as parent to handle focus stuff
+		pleaseWaitDlg = new PleaseWaitDialog(parent);
+
+		if (args.containsKey("download"))
+			for (String s : args.get("download"))
+				downloadFromParamString(false, s);
+		if (args.containsKey("downloadgps"))
+			for (String s : args.get("downloadgps"))
+				downloadFromParamString(true, s);
+		if (args.containsKey("selection"))
+			for (String s : args.get("selection"))
+				SearchAction.search(s, SearchAction.SearchMode.add, false);
+	}
+
+	public static boolean breakBecauseUnsavedChanges() {
+		if (map != null) {
+			boolean modified = false;
+			boolean uploadedModified = false;
+			for (final Layer l : map.mapView.getAllLayers()) {
+				if (l instanceof OsmDataLayer && ((OsmDataLayer)l).isModified()) {
+					modified = true;
+					uploadedModified = ((OsmDataLayer)l).uploadedModified;
+					break;
+				}
+			}
+			if (modified) {
+				final String msg = uploadedModified ? "\n"+tr("Hint: Some changes came from uploading new data to the server.") : "";
+				final int answer = JOptionPane.showConfirmDialog(
+						parent, tr("There are unsaved changes. Discard the changes and continue?")+msg,
+						tr("Unsaved Changes"), JOptionPane.YES_NO_OPTION);
+				if (answer != JOptionPane.YES_OPTION)
+					return true;
+			}
+		}
+		return false;
+	}
+
+	private static void downloadFromParamString(final boolean rawGps, String s) {
+		if (s.startsWith("http:")) {
+			final Bounds b = BoundingBoxSelection.osmurl2bounds(s);
+			if (b == null)
+				JOptionPane.showMessageDialog(Main.parent, tr("Ignoring malformed url: \"{0}\"", s));
+			else {
+				//DownloadTask osmTask = main.menu.download.downloadTasks.get(0);
+				DownloadTask osmTask = new DownloadOsmTask();
+				osmTask.download(main.menu.download, b.min.lat(), b.min.lon(), b.max.lat(), b.max.lon());
+			}
+			return;
+		}
+
+		if (s.startsWith("file:")) {
+			try {
+				main.menu.open.openFile(new File(new URI(s)));
+			} catch (URISyntaxException e) {
+				JOptionPane.showMessageDialog(Main.parent, tr("Ignoring malformed file url: \"{0}\"", s));
+			}
+			return;
+		}
+
+		final StringTokenizer st = new StringTokenizer(s, ",");
+		if (st.countTokens() == 4) {
+			try {
+				//DownloadTask task = main.menu.download.downloadTasks.get(rawGps ? 1 : 0);
+				DownloadTask task = rawGps ? new DownloadGpsTask() : new DownloadOsmTask();
+				task.download(main.menu.download, Double.parseDouble(st.nextToken()), Double.parseDouble(st.nextToken()), Double.parseDouble(st.nextToken()), Double.parseDouble(st.nextToken()));
+				return;
+			} catch (final NumberFormatException e) {
+			}
+		}
+
+		main.menu.open.openFile(new File(s));
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/AboutAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/AboutAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/AboutAction.java	(revision 321)
@@ -0,0 +1,179 @@
+//License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.util.Map.Entry;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.swing.AbstractAction;
+import javax.swing.BorderFactory;
+import javax.swing.Box;
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTabbedPane;
+import javax.swing.JTextArea;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.plugins.PluginProxy;
+import org.openstreetmap.josm.tools.GBC;
+import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.UrlLabel;
+
+/**
+ * Nice about screen. I guess every application need one these days.. *sigh*
+ * 
+ * The REVISION resource is read and if present, it shows the revision 
+ * information of the jar-file.
+ * 
+ * @author imi
+ */
+public class AboutAction extends JosmAction {
+
+	public static final String version;
+
+	private final static JTextArea revision;
+	private static String time;
+
+	static {
+		revision = loadFile(Main.class.getResource("/REVISION"));
+
+		Pattern versionPattern = Pattern.compile(".*?Revision: ([0-9]*).*", Pattern.CASE_INSENSITIVE|Pattern.DOTALL);
+		Matcher match = versionPattern.matcher(revision.getText());
+		version = match.matches() ? match.group(1) : "UNKNOWN";
+
+		Pattern timePattern = Pattern.compile(".*?Last Changed Date: ([^\n]*).*", Pattern.CASE_INSENSITIVE|Pattern.DOTALL);
+		match = timePattern.matcher(revision.getText());
+		time = match.matches() ? match.group(1) : "UNKNOWN";
+	}
+
+	public AboutAction() {
+		super(tr("About"), "about",tr("Display the about screen."), KeyEvent.VK_F1, KeyEvent.SHIFT_DOWN_MASK, true);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		JTabbedPane about = new JTabbedPane();
+
+		JTextArea readme = loadFile(Main.class.getResource("/README"));
+		JTextArea contribution = loadFile(Main.class.getResource("/CONTRIBUTION"));
+
+		JPanel info = new JPanel(new GridBagLayout());
+		info.add(new JLabel(tr("Java OpenStreetMap Editor Version {0}",version)), GBC.eol().fill(GBC.HORIZONTAL));
+		info.add(new JLabel(tr("last change at {0}",time)), GBC.eol().fill(GBC.HORIZONTAL));
+		info.add(new JLabel(tr("Java Version {0}",System.getProperty("java.version"))), GBC.eol().fill(GBC.HORIZONTAL));
+		info.add(GBC.glue(0,10), GBC.eol());
+		info.add(new JLabel(tr("Homepage")), GBC.std().insets(0,0,10,0));
+		info.add(new UrlLabel("http://josm.openstreetmap.de"), GBC.eol().fill(GBC.HORIZONTAL));
+		info.add(new JLabel(tr("Bug Reports")), GBC.std().insets(0,0,10,0));
+		info.add(new UrlLabel("http://josm.openstreetmap.de/newticket"), GBC.eol().fill(GBC.HORIZONTAL));
+		info.add(new JLabel(tr("News about JOSM")), GBC.std().insets(0,0,10,0));
+		info.add(new UrlLabel("http://www.opengeodata.org/?cat=17"), GBC.eol().fill(GBC.HORIZONTAL));
+
+		about.addTab(tr("Info"), info);
+		about.addTab(tr("Readme"), createScrollPane(readme));
+		about.addTab(tr("Revision"), createScrollPane(revision));
+		about.addTab(tr("Contribution"), createScrollPane(contribution));
+
+		JPanel pluginTab = new JPanel(new GridBagLayout());
+		for (final PluginProxy p : Main.plugins) {
+			String name = p.info.name + (p.info.version != null && !p.info.version.equals("") ? " Version: "+p.info.version : "");
+			pluginTab.add(new JLabel(name), GBC.std());
+			pluginTab.add(Box.createHorizontalGlue(), GBC.std().fill(GBC.HORIZONTAL));
+			pluginTab.add(new JButton(new AbstractAction(tr("Information")){
+				public void actionPerformed(ActionEvent event) {
+					StringBuilder b = new StringBuilder();
+					for (Entry<String,String> e : p.info.attr.entrySet()) {
+						b.append(e.getKey());
+						b.append(": ");
+						b.append(e.getValue());
+						b.append("\n");
+					}
+					JTextArea a = new JTextArea(10,40);
+					a.setEditable(false);
+					a.setText(b.toString());
+					JOptionPane.showMessageDialog(Main.parent, new JScrollPane(a));
+				}
+			}), GBC.eol());
+			JLabel label = new JLabel("<html><i>"+(p.info.description==null?tr("no description available"):p.info.description)+"</i></html>");
+			label.setBorder(BorderFactory.createEmptyBorder(0,20,0,0));
+			label.setMaximumSize(new Dimension(450,1000));
+			pluginTab.add(label, GBC.eop().fill(GBC.HORIZONTAL));
+		}
+		about.addTab(tr("Plugins"), pluginTab);
+
+		about.setPreferredSize(new Dimension(500,300));
+
+		JOptionPane.showMessageDialog(Main.parent, about, tr("About JOSM..."),
+				JOptionPane.INFORMATION_MESSAGE, ImageProvider.get("logo"));
+	}
+
+	private JScrollPane createScrollPane(JTextArea area) {
+		area.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
+		area.setOpaque(false);
+		JScrollPane sp = new JScrollPane(area);
+		sp.setBorder(null);
+		sp.setOpaque(false);
+		return sp;
+	}
+
+	/**
+	 * Retrieve the latest JOSM version from the JOSM homepage.
+	 * @return An string with the latest version or "UNKNOWN" in case
+	 * 		of problems (e.g. no internet connection).
+	 */
+	public static String checkLatestVersion() {
+		String latest;
+		try {
+			InputStream s = new URL("http://josm.openstreetmap.de/current").openStream();
+			latest = new BufferedReader(new InputStreamReader(s)).readLine();
+			s.close();
+		} catch (IOException x) {
+			x.printStackTrace();
+			return "UNKNOWN";
+		}
+		return latest;
+	}
+
+	/**
+	 * Load the specified ressource into an TextArea and return it.
+	 * @param resource The resource url to load
+	 * @return	An read-only text area with the content of "resource"
+	 */
+	private static JTextArea loadFile(URL resource) {
+		JTextArea area = new JTextArea(tr("File could not be found."));
+		area.setEditable(false);
+		Font font = Font.getFont("monospaced");
+		if (font != null)
+			area.setFont(font);
+		if (resource == null)
+			return area;
+		BufferedReader in;
+		try {
+			in = new BufferedReader(new InputStreamReader(resource.openStream()));
+			StringBuilder sb = new StringBuilder();
+			for (String line = in.readLine(); line != null; line = in.readLine()) {
+				sb.append(line);
+				sb.append('\n');
+			}
+			area.setText(sb.toString());
+			area.setCaretPosition(0);
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return area;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/AlignInCircleAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/AlignInCircleAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/AlignInCircleAction.java	(revision 321)
@@ -0,0 +1,73 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+import java.util.Collection;
+import java.util.LinkedList;
+
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.command.Command;
+import org.openstreetmap.josm.command.MoveCommand;
+import org.openstreetmap.josm.command.SequenceCommand;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+
+/**
+ * Aligns all selected nodes within a circle. (Usefull for roundabouts)
+ * 
+ * @author Matthew Newton
+ */
+public final class AlignInCircleAction extends JosmAction {
+
+	public AlignInCircleAction() {
+		super(tr("Align Nodes in Circle"), "aligncircle", tr("Move the selected nodes into a circle."), KeyEvent.VK_O, KeyEvent.CTRL_MASK | KeyEvent.SHIFT_MASK, true);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		Collection<OsmPrimitive> sel = Main.ds.getSelected();
+		Collection<Node> nodes = new LinkedList<Node>();
+		for (OsmPrimitive osm : sel)
+			if (osm instanceof Node)
+				nodes.add((Node)osm);
+		if (nodes.size() < 4) {
+			JOptionPane.showMessageDialog(Main.parent, tr("Please select at least four nodes."));
+			return;
+		}
+
+		// Get average position of all nodes
+		Node avn = new Node(new LatLon(0,0));
+		for (Node n : nodes) {
+			avn.eastNorth = new EastNorth(avn.eastNorth.east()+n.eastNorth.east(), avn.eastNorth.north()+n.eastNorth.north());
+			avn.coor = Main.proj.eastNorth2latlon(avn.eastNorth);
+		}
+		avn.eastNorth = new EastNorth(avn.eastNorth.east()/nodes.size(), avn.eastNorth.north()/nodes.size());
+		avn.coor = Main.proj.eastNorth2latlon(avn.eastNorth);
+		// Node "avn" now is central to all selected nodes.
+
+		// Now calculate the average distance to each node from the
+		// centre.
+		double avdist = 0;
+		for (Node n : nodes)
+			avdist += Math.sqrt(avn.eastNorth.distance(n.eastNorth));
+		avdist = avdist / nodes.size();
+
+		Collection<Command> cmds = new LinkedList<Command>();
+		// Move each node to that distance from the centre.
+		for (Node n : nodes) {
+			double dx = n.eastNorth.east() - avn.eastNorth.east();
+			double dy = n.eastNorth.north() - avn.eastNorth.north();
+			double dist = Math.sqrt(avn.eastNorth.distance(n.eastNorth));
+			cmds.add(new MoveCommand(n, (dx * (avdist / dist)) - dx, (dy * (avdist / dist)) - dy));
+		}
+
+		Main.main.undoRedo.add(new SequenceCommand(tr("Align Nodes in Circle"), cmds));
+		Main.map.repaint();
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/AlignInLineAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/AlignInLineAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/AlignInLineAction.java	(revision 321)
@@ -0,0 +1,115 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+import java.util.Collection;
+import java.util.LinkedList;
+
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.command.Command;
+import org.openstreetmap.josm.command.MoveCommand;
+import org.openstreetmap.josm.command.SequenceCommand;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+
+/**
+ * Aligns all selected nodes into a straight line (useful for
+ * roads that should be straight, but have side roads and
+ * therefore need multiple nodes)
+ * 
+ * @author Matthew Newton
+ */
+public final class AlignInLineAction extends JosmAction {
+
+	public AlignInLineAction() {
+		super(tr("Align Nodes in Line"), "alignline", tr("Move the selected nodes onto a line."), KeyEvent.VK_L, KeyEvent.CTRL_MASK | KeyEvent.SHIFT_MASK, true);
+	}
+
+	/**
+	 * The general algorithm here is to find the two selected nodes
+	 * that are furthest apart, and then to align all other selected
+	 * nodes onto the straight line between these nodes.
+	 */
+	public void actionPerformed(ActionEvent e) {
+		Collection<OsmPrimitive> sel = Main.ds.getSelected();
+		Collection<Node> nodes = new LinkedList<Node>();
+		Collection<Node> itnodes = new LinkedList<Node>();
+		for (OsmPrimitive osm : sel)
+			if (osm instanceof Node) {
+				nodes.add((Node)osm);
+				itnodes.add((Node)osm);
+			}
+		if (nodes.size() < 3) {
+			JOptionPane.showMessageDialog(Main.parent, tr("Please select at least three nodes."));
+			return;
+		}
+
+		// Find from the selected nodes two that are the furthest apart.
+		// Let's call them A and B.
+		double distance = 0;
+
+		Node nodea = null;
+		Node nodeb = null;
+
+		for (Node n : nodes) {
+			itnodes.remove(n);
+			for (Node m : itnodes) {
+				double dist = Math.sqrt(n.eastNorth.distance(m.eastNorth));
+				if (dist > distance) {
+					nodea = n;
+					nodeb = m;
+					distance = dist;
+				}
+			}
+		}
+
+		// Remove the nodes A and B from the list of nodes to move
+		nodes.remove(nodea);
+		nodes.remove(nodeb);
+
+		// Find out co-ords of A and B
+		double ax = nodea.eastNorth.east();
+		double ay = nodea.eastNorth.north();
+		double bx = nodeb.eastNorth.east();
+		double by = nodeb.eastNorth.north();
+
+		// A list of commands to do
+		Collection<Command> cmds = new LinkedList<Command>();
+
+		// OK, for each node to move, work out where to move it!
+		for (Node n : nodes) {
+			// Get existing co-ords of node to move
+			double nx = n.eastNorth.east();
+			double ny = n.eastNorth.north();
+
+			if (ax == bx) {
+				// Special case if AB is vertical...
+				nx = ax;
+			} else if (ay == by) {
+				// ...or horizontal
+				ny = ay;
+			} else {
+				// Otherwise calculate position by solving y=mx+c
+				double m1 = (by - ay) / (bx - ax);
+				double c1 = ay - (ax * m1);
+				double m2 = (-1) / m1;
+				double c2 = n.eastNorth.north() - (n.eastNorth.east() * m2);
+
+				nx = (c2 - c1) / (m1 - m2);
+				ny = (m1 * nx) + c1;
+			}
+
+			// Add the command to move the node to its new position.
+			cmds.add(new MoveCommand(n, nx - n.eastNorth.east(), ny - n.eastNorth.north() ));
+		}
+
+		// Do it!
+		Main.main.undoRedo.add(new SequenceCommand(tr("Align Nodes in Line"), cmds));
+		Main.map.repaint();
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java	(revision 321)
@@ -0,0 +1,64 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.xnap.commons.i18n.I18n.marktr;
+
+import java.awt.event.ActionEvent;
+import java.util.Collection;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
+import org.openstreetmap.josm.gui.layer.Layer;
+
+/**
+ * Toggles the autoScale feature of the mapView
+ * @author imi
+ */
+public class AutoScaleAction extends JosmAction {
+
+	public static final String[] modes = {
+		marktr("data"),
+		marktr("selection"),
+		marktr("layer"),
+		marktr("conflict")
+	};
+	private final String mode;
+
+	public AutoScaleAction(String mode) {
+		super(tr("Zoom to {0}", mode), "dialogs/autoscale/"+mode, tr("Zoom the view to {0}.", tr(mode)), 0, 0, true);
+		String modeHelp = Character.toUpperCase(mode.charAt(0))+mode.substring(1);
+		putValue("help", "Action/AutoScale/"+modeHelp);
+		this.mode = mode;
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		if (Main.map != null)
+			Main.map.mapView.recalculateCenterScale(getBoundingBox());
+		putValue("active", true);
+	}
+
+	private BoundingXYVisitor getBoundingBox() {
+		BoundingXYVisitor v = new BoundingXYVisitor();
+		if (mode.equals("data")) {
+			for (Layer l : Main.map.mapView.getAllLayers())
+				l.visitBoundingBox(v);
+		} else if (mode.equals("layer"))
+			Main.map.mapView.getActiveLayer().visitBoundingBox(v);
+		else if (mode.equals("selection") || mode.equals("conflict")) {
+			Collection<OsmPrimitive> sel = mode.equals("selection") ? Main.ds.getSelected() : Main.map.conflictDialog.conflicts.keySet();
+			for (OsmPrimitive osm : sel)
+				osm.visit(v);
+			// special case to zoom nicely to one single node
+			if (v.min != null && v.max != null && v.min.north() == v.max.north() && v.min.east() == v.max.east()) {
+				EastNorth en = Main.proj.latlon2eastNorth(new LatLon(0.02, 0.02));
+				v.min = new EastNorth(v.min.east()-en.east(), v.min.north()-en.north());
+				v.max = new EastNorth(v.max.east()+en.east(), v.max.north()+en.north());
+			}
+		}
+		return v;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java	(revision 321)
@@ -0,0 +1,121 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.TreeSet;
+import java.util.Map.Entry;
+
+import javax.swing.Box;
+import javax.swing.JComboBox;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.command.ChangeCommand;
+import org.openstreetmap.josm.command.Command;
+import org.openstreetmap.josm.command.DeleteCommand;
+import org.openstreetmap.josm.command.SequenceCommand;
+import org.openstreetmap.josm.data.SelectionChangedListener;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.tools.GBC;
+
+/**
+ * Combines multiple ways into one.
+ * 
+ * @author Imi
+ */
+public class CombineWayAction extends JosmAction implements SelectionChangedListener {
+
+	public CombineWayAction() {
+		super(tr("Combine Way"), "combineway", tr("Combine several ways into one."), KeyEvent.VK_C, KeyEvent.CTRL_MASK | KeyEvent.SHIFT_MASK, true);
+		DataSet.listeners.add(this);
+	}
+
+	public void actionPerformed(ActionEvent event) {
+		Collection<OsmPrimitive> selection = Main.ds.getSelected();
+		LinkedList<Way> selectedWays = new LinkedList<Way>();
+		
+		for (OsmPrimitive osm : selection)
+			if (osm instanceof Way)
+				selectedWays.add((Way)osm);
+
+		if (selectedWays.size() < 2) {
+			JOptionPane.showMessageDialog(Main.parent, tr("Please select at least two ways to combine."));
+			return;
+		}
+
+		// collect properties for later conflict resolving
+		Map<String, Set<String>> props = new TreeMap<String, Set<String>>();
+		for (Way w : selectedWays) {
+			for (Entry<String,String> e : w.entrySet()) {
+				if (!props.containsKey(e.getKey()))
+					props.put(e.getKey(), new TreeSet<String>());
+				props.get(e.getKey()).add(e.getValue());
+			}
+		}
+		
+		Way oldWay = selectedWays.poll();
+		Way newWay = new Way(oldWay);
+		LinkedList<Command> cmds = new LinkedList<Command>();
+		
+		for (Way w : selectedWays)
+			newWay.segments.addAll(w.segments);
+		
+		// display conflict dialog
+		Map<String, JComboBox> components = new HashMap<String, JComboBox>();
+		JPanel p = new JPanel(new GridBagLayout());
+		for (Entry<String, Set<String>> e : props.entrySet()) {
+			if (e.getValue().size() > 1) {
+				JComboBox c = new JComboBox(e.getValue().toArray());
+				c.setEditable(true);
+				p.add(new JLabel(e.getKey()), GBC.std());
+				p.add(Box.createHorizontalStrut(10), GBC.std());
+				p.add(c, GBC.eol());
+				components.put(e.getKey(), c);
+			} else
+				newWay.put(e.getKey(), e.getValue().iterator().next());
+		}
+		if (!components.isEmpty()) {
+			int answer = JOptionPane.showConfirmDialog(Main.parent, p, tr("Enter values for all conflicts."), JOptionPane.OK_CANCEL_OPTION);
+			if (answer != JOptionPane.OK_OPTION)
+				return;
+			for (Entry<String, JComboBox> e : components.entrySet())
+				newWay.put(e.getKey(), e.getValue().getEditor().getItem().toString());
+		}
+
+		cmds.add(new DeleteCommand(selectedWays));
+		cmds.add(new ChangeCommand(oldWay, newWay));
+		Main.main.undoRedo.add(new SequenceCommand(tr("Combine {0} ways", selectedWays.size()), cmds));
+		Main.ds.setSelected(oldWay);
+	}
+
+	/**
+	 * Enable the "Combine way" menu option if more then one way is selected
+	 */
+	public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
+		boolean first = false;
+		for (OsmPrimitive osm : newSelection) {
+			if (osm instanceof Way) {
+				if (first) {
+					setEnabled(true);
+					return;
+				}
+				first = true;
+			}
+		}
+		setEnabled(false);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/DiskAccessAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/DiskAccessAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/DiskAccessAction.java	(revision 321)
@@ -0,0 +1,48 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.io.File;
+
+import javax.swing.JFileChooser;
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+
+/**
+ * Helper class for all actions, that access the disk
+ */
+abstract public class DiskAccessAction extends JosmAction {
+
+	public DiskAccessAction(String name, String iconName, String tooltip, int shortCut, int modifiers) {
+		super(name, iconName, tooltip, shortCut, modifiers, true);
+	}
+	
+	protected static JFileChooser createAndOpenFileChooser(boolean open, boolean multiple) {
+		String curDir = Main.pref.get("lastDirectory");
+		if (curDir.equals(""))
+			curDir = ".";
+		JFileChooser fc = new JFileChooser(new File(curDir));
+		fc.setMultiSelectionEnabled(multiple);
+		for (int i = 0; i < ExtensionFileFilter.filters.length; ++i)
+			fc.addChoosableFileFilter(ExtensionFileFilter.filters[i]);
+		fc.setAcceptAllFileFilterUsed(true);
+	
+		int answer = open ? fc.showOpenDialog(Main.parent) : fc.showSaveDialog(Main.parent);
+		if (answer != JFileChooser.APPROVE_OPTION)
+			return null;
+		
+		if (!fc.getCurrentDirectory().getAbsolutePath().equals(curDir))
+			Main.pref.put("lastDirectory", fc.getCurrentDirectory().getAbsolutePath());
+
+		if (!open) {
+			File file = fc.getSelectedFile();
+			if (file == null || (file.exists() && JOptionPane.YES_OPTION != 
+					JOptionPane.showConfirmDialog(Main.parent, tr("File exists. Overwrite?"), tr("Overwrite"), JOptionPane.YES_NO_OPTION)))
+				return null;
+		}
+		
+		return fc;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/DownloadAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/DownloadAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/DownloadAction.java	(revision 321)
@@ -0,0 +1,69 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
+
+import javax.swing.JDialog;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.download.DownloadDialog;
+import org.openstreetmap.josm.gui.download.DownloadDialog.DownloadTask;
+import org.openstreetmap.josm.tools.GBC;
+
+/**
+ * Action that opens a connection to the osm server and download map data.
+ *
+ * An dialog is displayed asking the user to specify a rectangle to grab.
+ * The url and account settings from the preferences are used.
+ *
+ * @author imi
+ */
+public class DownloadAction extends JosmAction {
+	
+	public DownloadDialog dialog;
+	
+	public DownloadAction() {
+		super(tr("Download from OSM"), "download", tr("Download map data from the OSM server."), KeyEvent.VK_D, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK, true);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		dialog = new DownloadDialog();
+		
+		JPanel downPanel = new JPanel(new GridBagLayout());
+		downPanel.add(dialog, GBC.eol().fill(GBC.BOTH));
+
+		JOptionPane pane = new JOptionPane(downPanel, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
+		JDialog dlg = pane.createDialog(Main.parent, tr("Download"));
+
+		if (dlg.getWidth() > 1000)
+			dlg.setSize(1000, dlg.getHeight());
+		if (dlg.getHeight() > 600)
+			dlg.setSize(dlg.getWidth(),600);
+
+		boolean finish = false;
+        while (!finish) {
+            dlg.setVisible(true);
+            Main.pref.put("download.newlayer", dialog.newLayer.isSelected());
+        	if (pane.getValue() instanceof Integer && (Integer)pane.getValue() == JOptionPane.OK_OPTION) {
+        		Main.pref.put("download.tab", Integer.toString(dialog.getSelectedTab()));
+        		for (DownloadTask task : dialog.downloadTasks) {
+        			Main.pref.put("download."+task.getPreferencesSuffix(), task.getCheckBox().isSelected());
+        			if (task.getCheckBox().isSelected()) {
+        				task.download(this, dialog.minlat, dialog.minlon, dialog.maxlat, dialog.maxlon);
+        				finish = true;
+        			}
+        		}
+        	} else
+        		finish = true;
+        	if (!finish)
+        		JOptionPane.showMessageDialog(Main.parent, tr("Please select at least one task to download"));
+        }
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java	(revision 321)
@@ -0,0 +1,80 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.HashSet;
+
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.osm.visitor.MergeVisitor;
+import org.openstreetmap.josm.gui.PleaseWaitRunnable;
+import org.openstreetmap.josm.io.IncompleteDownloader;
+import org.xml.sax.SAXException;
+
+/**
+ * Action that opens a connection to the osm server and download map data.
+ *
+ * An dialog is displayed asking the user to specify a rectangle to grab.
+ * The url and account settings from the preferences are used.
+ *
+ * @author imi
+ */
+public class DownloadIncompleteAction extends JosmAction {
+
+	/**
+	 * Open the download dialog and download the data.
+	 * Run in the worker thread.
+	 */
+	private final class DownloadTask extends PleaseWaitRunnable {
+		private IncompleteDownloader reader;
+
+		private DownloadTask(Collection<Way> toDownload) {
+			super(trn("Downloading {0} way", "Downloading {0} ways", toDownload.size(), toDownload.size()));
+			reader = new IncompleteDownloader(toDownload);
+		}
+
+		@Override public void realRun() throws IOException, SAXException {
+			reader.parse();
+		}
+
+		@Override protected void finish() {
+			MergeVisitor merger = new MergeVisitor(Main.ds, reader.data);
+			for (OsmPrimitive osm : reader.data.allPrimitives())
+				osm.visit(merger);
+			Main.parent.repaint();
+		}
+
+		@Override protected void cancel() {
+			reader.cancel();
+		}
+	}
+
+	public DownloadIncompleteAction() {
+		super(tr("Download incomplete objects"), "downloadincomplete", tr("Download all (selected) incomplete ways from the OSM server."), KeyEvent.VK_D, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK | InputEvent.ALT_DOWN_MASK, true);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		Collection<Way> ways = new HashSet<Way>();
+		for (Way w : Main.ds.ways)
+			if (w.isIncomplete() && w.selected)
+				ways.add(w);
+		if (ways.isEmpty()) {
+			JOptionPane.showMessageDialog(Main.parent, tr("Please select an incomplete way."));
+			return;
+		}
+		if (JOptionPane.YES_OPTION != JOptionPane.showConfirmDialog(Main.parent, tr("Download {0} incomplete ways?", ways.size()), tr("Download?"), JOptionPane.YES_NO_OPTION))
+			return;
+		PleaseWaitRunnable task = new DownloadTask(ways);
+		Main.worker.execute(task);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/ExitAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/ExitAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/ExitAction.java	(revision 321)
@@ -0,0 +1,28 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+
+import org.openstreetmap.josm.Main;
+
+/**
+ * Exit the application. May ask for permition first (if something has changed).
+ *  
+ * @author imi
+ */
+public class ExitAction extends JosmAction {
+	/**
+	 * Construct the action with "Exit" as label
+	 */
+	public ExitAction() {
+		super(tr("Exit"), "exit", tr("Exit the application."), KeyEvent.VK_Q, KeyEvent.CTRL_DOWN_MASK, true);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		if (!Main.breakBecauseUnsavedChanges())
+			System.exit(0);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java	(revision 321)
@@ -0,0 +1,58 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.io.File;
+
+import javax.swing.filechooser.FileFilter;
+
+/**
+ * A file filter that filters after the extension. Also includes a list of file 
+ * filters used in JOSM.
+ * 
+ * @author imi
+ */
+public class ExtensionFileFilter extends FileFilter {
+	private final String extension;
+	private final String description;
+	public final String defaultExtension;
+
+	public static final int OSM = 0;
+	public static final int GPX = 1;
+	public static final int CSV = 2;
+	
+	public static ExtensionFileFilter[] filters = {
+		new ExtensionFileFilter("osm,xml", "osm", tr("OSM Server Files (.osm .xml)")),
+		new ExtensionFileFilter("gpx,gpx.gz", "gpx", tr("GPX Files (.gpx .gpx.gz)")),
+		new ExtensionFileFilter("csv,txt", "csv", tr("CSV Files (.csv .txt)")),
+	};
+
+	/**
+	 * Construct an extension file filter by giving the extension to check after.
+	 *
+	 */
+	private ExtensionFileFilter(String extension, String defExt, String description) {
+		this.extension = extension;
+		defaultExtension = defExt;
+		this.description = description;
+	}
+
+	public boolean acceptName(String filename) {
+		String name = filename.toLowerCase();
+		for (String ext : extension.split(","))
+			if (name.endsWith("."+ext))
+				return true;
+		return false;
+	}
+
+	@Override public boolean accept(File pathname) {
+		if (pathname.isDirectory())
+			return true;
+		return acceptName(pathname.getName());
+	}
+
+	@Override public String getDescription() {
+		return description;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/GpxExportAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/GpxExportAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/GpxExportAction.java	(revision 321)
@@ -0,0 +1,230 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.InputEvent;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.Calendar;
+
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JFileChooser;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+import javax.swing.JTextField;
+import javax.swing.ListSelectionModel;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.RawGpsLayer;
+import org.openstreetmap.josm.io.GpxWriter;
+import org.openstreetmap.josm.io.XmlWriter;
+import org.openstreetmap.josm.tools.GBC;
+
+/**
+ * Exports data to gpx.
+ */
+public class GpxExportAction extends DiskAccessAction {
+
+	private final static String warningGpl = "<html><font color='red' size='-2'>"+tr("Note: GPL is not compatible with the OSM license. Do not upload GPL licensed tracks.")+"</html>";
+
+	private final Layer layer;
+
+	public GpxExportAction(Layer layer) {
+		super(tr("Export to GPX"), "exportgpx", tr("Export the data to GPX file."), KeyEvent.VK_E, InputEvent.CTRL_DOWN_MASK);
+		this.layer = layer;
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		if (layer == null && Main.map == null) {
+			JOptionPane.showMessageDialog(Main.parent, tr("Nothing to export. Get some data first."));
+			return;
+		}
+
+		JFileChooser fc = createAndOpenFileChooser(false, false);
+		if (fc == null)
+			return;
+		File file = fc.getSelectedFile();
+		if (file == null)
+			return;
+
+		exportGpx(file, this.layer == null ? Main.main.editLayer() : this.layer);
+	}
+
+	public static void exportGpx(File file, Layer layer) {
+		String fn = file.getPath();
+		if (fn.indexOf('.') == -1) {
+			fn += ".gpx";
+			file = new File(fn);
+		}
+		
+		// open the dialog asking for options
+		JPanel p = new JPanel(new GridBagLayout());
+
+		p.add(new JLabel(tr("gps track description")), GBC.eol());
+		JTextArea desc = new JTextArea(3,40);
+		desc.setWrapStyleWord(true);
+		desc.setLineWrap(true);
+		p.add(new JScrollPane(desc), GBC.eop().fill(GBC.BOTH));
+		
+		JCheckBox author = new JCheckBox(tr("Add author information"), Main.pref.getBoolean("lastAddAuthor", true));
+		author.setSelected(true);
+		p.add(author, GBC.eol());
+		JLabel nameLabel = new JLabel(tr("Real name"));
+		p.add(nameLabel, GBC.std().insets(10,0,5,0));
+		JTextField authorName = new JTextField(Main.pref.get("lastAuthorName"));
+		p.add(authorName, GBC.eol().fill(GBC.HORIZONTAL));
+		JLabel emailLabel = new JLabel(tr("Email"));
+		p.add(emailLabel, GBC.std().insets(10,0,5,0));
+		JTextField email = new JTextField(Main.pref.get("osm-server.username"));
+		p.add(email, GBC.eol().fill(GBC.HORIZONTAL));
+		JLabel copyrightLabel = new JLabel(tr("Copyright (URL)"));
+		p.add(copyrightLabel, GBC.std().insets(10,0,5,0));
+		JTextField copyright = new JTextField();
+		p.add(copyright, GBC.std().fill(GBC.HORIZONTAL));
+		JButton predefined = new JButton(tr("Predefined"));
+		p.add(predefined, GBC.eol().insets(5,0,0,0));
+		JLabel copyrightYearLabel = new JLabel(tr("Copyright year"));
+		p.add(copyrightYearLabel, GBC.std().insets(10,0,5,5));
+		JTextField copyrightYear = new JTextField("");
+		p.add(copyrightYear, GBC.eol().fill(GBC.HORIZONTAL));
+		JLabel warning = new JLabel("<html><font size='-2'>&nbsp;</html");
+		p.add(warning, GBC.eol().fill(GBC.HORIZONTAL).insets(15,0,0,0));
+		addDependencies(author, authorName, email, copyright, predefined, copyrightYear, nameLabel, emailLabel, copyrightLabel, copyrightYearLabel, warning);
+		
+		p.add(new JLabel(tr("Keywords")), GBC.eol());
+		JTextField keywords = new JTextField();
+		p.add(keywords, GBC.eop().fill(GBC.HORIZONTAL));
+
+		int answer = JOptionPane.showConfirmDialog(Main.parent, p, tr("Export options"), JOptionPane.OK_CANCEL_OPTION);
+		if (answer != JOptionPane.OK_OPTION)
+			return;
+		
+		Main.pref.put("lastAddAuthor", author.isSelected());
+		if (authorName.getText().length() != 0)
+			Main.pref.put("lastAuthorName", authorName.getText());
+		if (copyright.getText().length() != 0)
+			Main.pref.put("lastCopyright", copyright.getText());
+		
+		XmlWriter.OsmWriterInterface w;
+		if (layer instanceof RawGpsLayer)
+			w = new GpxWriter.Trk(((RawGpsLayer)layer).data);
+		else
+			w = new GpxWriter.All(Main.ds, layer.name, desc.getText(),
+					authorName.getText(), email.getText(), copyright.getText(),
+					copyrightYear.getText(), keywords.getText());
+		try {
+			XmlWriter.output(new FileOutputStream(file), w);
+		} catch (IOException x) {
+			x.printStackTrace();
+			JOptionPane.showMessageDialog(Main.parent, tr("Error while exporting {0}", fn)+":\n"+x.getMessage(), tr("Error"), JOptionPane.ERROR_MESSAGE);
+		}		
+	}
+	
+	/**
+	 * Add all those listeners to handle the enable state of the fields.
+	 * @param copyrightYearLabel 
+	 * @param copyrightLabel 
+	 * @param emailLabel 
+	 * @param nameLabel 
+	 * @param warning 
+	 */
+	private static void addDependencies(
+			final JCheckBox author, 
+			final JTextField authorName,
+			final JTextField email,
+			final JTextField copyright,
+			final JButton predefined,
+			final JTextField copyrightYear,
+			final JLabel nameLabel,
+			final JLabel emailLabel,
+			final JLabel copyrightLabel,
+			final JLabel copyrightYearLabel,
+			final JLabel warning) {
+		
+		ActionListener authorActionListener = new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				boolean b = author.isSelected();
+				authorName.setEnabled(b);
+				email.setEnabled(b);
+				nameLabel.setEnabled(b);
+				emailLabel.setEnabled(b);
+				authorName.setText(b ? Main.pref.get("lastAuthorName") : "");
+				email.setText(b ? Main.pref.get("osm-server.username") : "");
+
+				boolean authorSet = authorName.getText().length() != 0;
+				enableCopyright(copyright, predefined, copyrightYear, copyrightLabel, copyrightYearLabel, warning, b && authorSet);
+			}
+		};
+		author.addActionListener(authorActionListener);
+
+		KeyAdapter authorNameListener = new KeyAdapter(){
+					@Override public void keyReleased(KeyEvent e) {
+						boolean b = authorName.getText().length()!=0 && author.isSelected();
+						enableCopyright(copyright, predefined, copyrightYear, copyrightLabel, copyrightYearLabel, warning, b);
+					}
+				};
+		authorName.addKeyListener(authorNameListener);
+		
+		predefined.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				JList l = new JList(new String[]{"Creative Commons By-SA", "public domain", "GNU Lesser Public License (LGPL)", "BSD License (MIT/X11)"});
+				l.setVisibleRowCount(4);
+				l.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
+				int answer = JOptionPane.showConfirmDialog(Main.parent, new JScrollPane(l),tr("Choose a predefined license"), JOptionPane.OK_CANCEL_OPTION);
+				if (answer != JOptionPane.OK_OPTION || l.getSelectedIndex() == -1)
+					return;
+				final String[] urls = {
+						"http://creativecommons.org/licenses/by-sa/2.5",
+						"public domain",
+						"http://www.gnu.org/copyleft/lesser.html",
+						"http://www.opensource.org/licenses/bsd-license.php"};
+				String license = "";
+				for (int i : l.getSelectedIndices()) {
+					if (i == 1) {
+						license = "public domain";
+						break;
+					}
+					license += license.length()==0 ? urls[i] : ", "+urls[i];
+				}
+				copyright.setText(license);
+				copyright.setCaretPosition(0);
+			}
+		});
+
+		authorActionListener.actionPerformed(null);
+		authorNameListener.keyReleased(null);
+	}
+
+	private static void enableCopyright(final JTextField copyright, final JButton predefined, final JTextField copyrightYear, final JLabel copyrightLabel, final JLabel copyrightYearLabel, final JLabel warning, boolean enable) {
+		copyright.setEnabled(enable);
+		predefined.setEnabled(enable);
+		copyrightYear.setEnabled(enable);
+		copyrightLabel.setEnabled(enable);
+		copyrightYearLabel.setEnabled(enable);
+		warning.setText(enable ? warningGpl : "<html><font size='-2'>&nbsp;</html");
+
+		if (enable && copyrightYear.getText().length()==0) {
+			copyrightYear.setText(enable ? Integer.toString(Calendar.getInstance().get(Calendar.YEAR)) : "");
+		} else if (!enable)
+			copyrightYear.setText("");
+
+		if (enable && copyright.getText().length()==0) {
+			copyright.setText(enable ? Main.pref.get("lastCopyright", "http://creativecommons.org/licenses/by-sa/2.5") : "");
+			copyright.setCaretPosition(0);
+		} else if (!enable)
+			copyright.setText("");
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/GroupAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/GroupAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/GroupAction.java	(revision 321)
@@ -0,0 +1,88 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyEvent;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.swing.AbstractAction;
+import javax.swing.Action;
+import javax.swing.Icon;
+import javax.swing.JComponent;
+import javax.swing.JMenuItem;
+import javax.swing.JPopupMenu;
+import javax.swing.KeyStroke;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.IconToggleButton;
+import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.ShortCutLabel;
+import org.openstreetmap.josm.tools.ImageProvider.OverlayPosition;
+
+
+public class GroupAction extends JosmAction {
+
+	protected final List<Action> actions = new ArrayList<Action>();
+	private int current = -1;
+	private String shortCutName = "";
+
+	private PropertyChangeListener forwardActiveListener = new PropertyChangeListener(){
+		public void propertyChange(PropertyChangeEvent evt) {
+			if (evt.getPropertyName().equals("active"))
+				putValue("active", evt.getNewValue());
+		}
+	};
+
+	protected void setCurrent(int current) {
+		if (this.current != -1)
+			actions.get(this.current).removePropertyChangeListener(forwardActiveListener);
+		actions.get(current).addPropertyChangeListener(forwardActiveListener);
+
+		this.current = current;
+		putValue(SMALL_ICON, ImageProvider.overlay((Icon)actions.get(current).getValue(SMALL_ICON), "overlay/right", OverlayPosition.SOUTHEAST));
+		Object tooltip = actions.get(current).getValue(SHORT_DESCRIPTION);
+		putValue(SHORT_DESCRIPTION, "<html>"+tooltip+" <font size='-2'>"+shortCutName+"</font>&nbsp;</html>");
+	}
+
+	public GroupAction(int shortCut, int modifiers) {
+		String idName = getClass().getName();
+		Main.contentPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(shortCut, modifiers), idName);
+		Main.contentPane.getActionMap().put(idName, this);
+		shortCutName = ShortCutLabel.name(shortCut, modifiers);
+		Main.contentPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(shortCut, KeyEvent.SHIFT_DOWN_MASK), idName+".cycle");
+		Main.contentPane.getActionMap().put(idName+".cycle", new AbstractAction(){
+			public void actionPerformed(ActionEvent e) {
+				setCurrent((current+1)%actions.size());
+				actions.get(current).actionPerformed(e);
+			}
+		});
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		if (e.getSource() instanceof IconToggleButton && ((IconToggleButton)e.getSource()).groupbutton) {
+			IconToggleButton b = (IconToggleButton)e.getSource();
+			b.setSelected(!b.isSelected());
+			openPopup(b);
+		} else
+			actions.get(current).actionPerformed(e);
+	}
+
+	private void openPopup(IconToggleButton b) {
+		JPopupMenu popup = new JPopupMenu();
+		for (int i = 0; i < actions.size(); ++i) {
+			final int j = i;
+			JMenuItem item = new JMenuItem(actions.get(i));
+			item.addActionListener(new ActionListener(){
+				public void actionPerformed(ActionEvent e) {
+					setCurrent(j);
+				}
+			});
+			popup.add(item);
+		}
+		popup.show(b, b.getWidth(), 0);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/HelpAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/HelpAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/HelpAction.java	(revision 321)
@@ -0,0 +1,188 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Point;
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.io.IOException;
+import java.io.StringReader;
+
+import javax.swing.AbstractAction;
+import javax.swing.AbstractButton;
+import javax.swing.Action;
+import javax.swing.JButton;
+import javax.swing.JComponent;
+import javax.swing.JEditorPane;
+import javax.swing.JFrame;
+import javax.swing.JMenu;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.KeyStroke;
+import javax.swing.SwingUtilities;
+import javax.swing.event.HyperlinkEvent;
+import javax.swing.event.HyperlinkListener;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.OpenBrowser;
+import org.openstreetmap.josm.tools.WikiReader;
+
+/**
+ * Open a help browser and displays lightweight online help.
+ *
+ * @author imi
+ */
+public class HelpAction extends AbstractAction {
+
+	public interface Helpful {
+		String helpTopic();
+    }
+
+	private JFrame helpBrowser = new JFrame("JOSM Online Help");
+	private String baseurl = Main.pref.get("help.baseurl", "http://josm.eigenheimstrasse.de");
+	private JEditorPane help = new JEditorPane();
+	private WikiReader reader = new WikiReader(baseurl);
+	private String url;
+
+	public HelpAction() {
+		super(tr("Help"), ImageProvider.get("help"));
+		help.setEditable(false);
+		help.addHyperlinkListener(new HyperlinkListener(){
+			public void hyperlinkUpdate(HyperlinkEvent e) {
+				if (e.getEventType() != HyperlinkEvent.EventType.ACTIVATED)
+					return;
+				if (e.getURL() == null)
+					help.setText("<html>404 not found</html>");
+				else if (e.getURL().toString().startsWith(WikiReader.JOSM_EXTERN))
+					OpenBrowser.displayUrl("http://"+e.getURL().toString().substring(WikiReader.JOSM_EXTERN.length())+"?action=edit");
+				else
+					setHelpUrl(e.getURL().toString());
+			}
+		});
+		help.setContentType("text/html");
+
+		JPanel p = new JPanel(new BorderLayout());
+		helpBrowser.setContentPane(p);
+
+		p.add(new JScrollPane(help), BorderLayout.CENTER);
+		String[] bounds = Main.pref.get("help.window.bounds", "0,0,800,600").split(",");
+		helpBrowser.setBounds(
+				Integer.parseInt(bounds[0]),
+				Integer.parseInt(bounds[1]),
+				Integer.parseInt(bounds[2]),
+				Integer.parseInt(bounds[3]));
+
+		JPanel buttons = new JPanel();
+		p.add(buttons, BorderLayout.SOUTH);
+		createButton(buttons, "Open in Browser");
+		createButton(buttons, "Edit");
+		createButton(buttons, "Reload");
+
+		helpBrowser.addWindowListener(new WindowAdapter(){
+			@Override public void windowClosing(WindowEvent e) {
+				closeHelp();
+			}
+		});
+
+        help.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "Close");
+        help.getActionMap().put("Close", new AbstractAction(){
+			public void actionPerformed(ActionEvent e) {
+				closeHelp();
+            }
+        });
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		if ("Open in Browser".equals(e.getActionCommand())) {
+			OpenBrowser.displayUrl(url);
+		} else if ("Edit".equals(e.getActionCommand())) {
+			if (!url.startsWith(baseurl)) {
+				JOptionPane.showMessageDialog(Main.parent, tr("Can only edit help pages from JOSM Online Help"));
+				return;
+			}
+			OpenBrowser.displayUrl(url+"?action=edit");
+		} else if ("Reload".equals(e.getActionCommand())) {
+			setHelpUrl(url);
+		} else if (e.getActionCommand() == null) {
+			String topic = null;
+			Point mouse = Main.parent.getMousePosition();
+			if (mouse != null)
+				topic = contextSensitiveHelp(SwingUtilities.getDeepestComponentAt(Main.parent, mouse.x, mouse.y));
+			if (topic == null) {
+				helpBrowser.setVisible(false);
+				setHelpUrl(baseurl+"/wiki/Help");
+			} else
+				help(topic);
+		} else {
+			helpBrowser.setVisible(false);
+			setHelpUrl(baseurl+"/wiki/Help");
+		}
+	}
+
+	/**
+	 * @return The topic of the help. <code>null</code> for "don't know"
+	 */
+	private String contextSensitiveHelp(Object c) {
+		if (c instanceof Helpful)
+			return ((Helpful)c).helpTopic();
+		if (c instanceof JMenu)
+			return "Menu/"+((JMenu)c).getText();
+		if (c instanceof AbstractButton) {
+			AbstractButton b = (AbstractButton)c;
+			if (b.getClientProperty("help") != null)
+				return (String)b.getClientProperty("help");
+			return contextSensitiveHelp(((AbstractButton)c).getAction());
+		}
+		if (c instanceof Action)
+			return (String)((Action)c).getValue("help");
+		if (c instanceof Component)
+			return contextSensitiveHelp(((Component)c).getParent());
+		return null;
+    }
+
+	/**
+	 * Displays the help (or browse on the already open help) to the online page
+	 * with the given help topic. Use this for larger help descriptions.
+	 */
+	public void help(String topic) {
+		helpBrowser.setVisible(false);
+		setHelpUrl(baseurl+"/wiki/Help/"+topic);
+	}
+
+	/**
+	 * Set the content of the help window to a specific text (in html format)
+	 * @param url The url this content is the representation of
+	 */
+	public void setHelpUrl(String url) {
+		this.url = url;
+		try {
+			help.read(new StringReader(reader.read(url)), help.getEditorKit().createDefaultDocument());
+        } catch (IOException e) {
+        	help.setText("Error while loading page "+url);
+        }
+		helpBrowser.setVisible(true);
+	}
+
+	/**
+	 * Closes the help window
+	 */
+	public void closeHelp() {
+		String bounds = helpBrowser.getX()+","+helpBrowser.getY()+","+helpBrowser.getWidth()+","+helpBrowser.getHeight();
+		Main.pref.put("help.window.bounds", bounds);
+		helpBrowser.setVisible(false);
+	}
+
+	private void createButton(JPanel buttons, String name) {
+		JButton b = new JButton(tr(name));
+		b.setActionCommand(name);
+		b.addActionListener(this);
+		buttons.add(b);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/JosmAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/JosmAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/JosmAction.java	(revision 321)
@@ -0,0 +1,60 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+
+import javax.swing.AbstractAction;
+import javax.swing.JComponent;
+import javax.swing.KeyStroke;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.tools.Destroyable;
+import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.ShortCutLabel;
+
+/**
+ * Base class helper for all Actions in JOSM. Just to make the life easier.
+ * 
+ * destroy() from interface Destroyable is called e.g. for MapModes, when the last layer has
+ * been removed and so the mapframe will be destroyed. For other JosmActions, destroy() may never
+ * be called (currently).
+ * 
+ * @author imi
+ */
+abstract public class JosmAction extends AbstractAction implements Destroyable {
+
+	private KeyStroke shortCut;
+
+	public JosmAction(String name, String iconName, String tooltip, int shortCut, int modifier, boolean register) {
+		super(name, ImageProvider.get(iconName));
+		setHelpId();
+		String scl = ShortCutLabel.name(shortCut, modifier);
+		putValue(SHORT_DESCRIPTION, "<html>"+tooltip+" <font size='-2'>"+scl+"</font>"+(scl.equals("")?"":"&nbsp;")+"</html>");
+		if (shortCut != 0) {
+			this.shortCut = KeyStroke.getKeyStroke(shortCut, modifier);
+			Main.contentPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(this.shortCut, name);
+			Main.contentPane.getActionMap().put(name, this);
+		}
+        putValue("toolbar", iconName);
+        if (register)
+        	Main.toolbar.register(this);
+	}
+
+	public void destroy() {
+		if (shortCut != null) {
+			Main.contentPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).remove(shortCut);
+			Main.contentPane.getActionMap().remove(shortCut);
+		}
+	}
+	
+	public JosmAction() {
+		setHelpId();
+	}
+
+
+	private void setHelpId() {
+		String helpId = "Action/"+getClass().getName().substring(getClass().getName().lastIndexOf('.')+1);
+		if (helpId.endsWith("Action"))
+			helpId = helpId.substring(0, helpId.length()-6);
+		putValue("help", helpId);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/NewAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/NewAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/NewAction.java	(revision 321)
@@ -0,0 +1,23 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+
+public class NewAction extends JosmAction {
+
+	public NewAction() {
+		super(tr("New"), "new", tr("Create a new map."), KeyEvent.VK_N, InputEvent.CTRL_DOWN_MASK, true);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		Main.main.addLayer(new OsmDataLayer(new DataSet(), tr("unnamed"), null));
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/OpenAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/OpenAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/OpenAction.java	(revision 321)
@@ -0,0 +1,121 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.zip.GZIPInputStream;
+
+import javax.swing.JFileChooser;
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.gui.layer.RawGpsLayer;
+import org.openstreetmap.josm.gui.layer.RawGpsLayer.GpsPoint;
+import org.openstreetmap.josm.gui.layer.markerlayer.Marker;
+import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
+import org.openstreetmap.josm.io.OsmReader;
+import org.openstreetmap.josm.io.RawCsvReader;
+import org.openstreetmap.josm.io.RawGpsReader;
+import org.xml.sax.SAXException;
+
+/**
+ * Open a file chooser dialog and select an file to import. Than call the gpx-import
+ * driver. Finally open an internal frame into the main window with the gpx data shown.
+ * 
+ * @author imi
+ */
+public class OpenAction extends DiskAccessAction {
+	
+	/**
+	 * Create an open action. The name is "Open a file".
+	 */
+	public OpenAction() {
+		super(tr("Open"), "open", tr("Open a file."), KeyEvent.VK_O, InputEvent.CTRL_DOWN_MASK);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		JFileChooser fc = createAndOpenFileChooser(true, true);
+		if (fc == null)
+			return;
+		File[] files = fc.getSelectedFiles();
+		for (int i = files.length; i > 0; --i)
+			openFile(files[i-1]);
+	}
+
+	/**
+	 * Open the given file.
+	 */
+	public void openFile(File file) {
+		try {
+			if (asRawData(file.getName()))
+				openFileAsRawGps(file);
+			else
+				openAsData(file);
+		} catch (SAXException x) {
+			x.printStackTrace();
+			JOptionPane.showMessageDialog(Main.parent, tr("Error while parsing {0}",file.getName())+": "+x.getMessage());
+		} catch (IOException x) {
+			x.printStackTrace();
+			JOptionPane.showMessageDialog(Main.parent, tr("Could not read \"{0}\"",file.getName())+"\n"+x.getMessage());
+		}
+	}
+
+	private void openAsData(File file) throws SAXException, IOException, FileNotFoundException {
+	    String fn = file.getName();
+	    if (ExtensionFileFilter.filters[ExtensionFileFilter.OSM].acceptName(fn)) {
+	    	DataSet dataSet = OsmReader.parseDataSet(new FileInputStream(file), null, Main.pleaseWaitDlg);
+	    	OsmDataLayer layer = new OsmDataLayer(dataSet, file.getName(), file);
+            Main.main.addLayer(layer);
+	    } else if (ExtensionFileFilter.filters[ExtensionFileFilter.CSV].acceptName(fn))
+	    	JOptionPane.showMessageDialog(Main.parent, fn+": "+tr("CSV Data import for non-GPS data is not implemented yet."));
+	    else
+	    	JOptionPane.showMessageDialog(Main.parent, fn+": "+tr("Unknown file extension: {0}", fn.substring(file.getName().lastIndexOf('.')+1)));
+    }
+
+	private void openFileAsRawGps(File file) throws SAXException, IOException, FileNotFoundException {
+	    String fn = file.getName();
+	    Collection<Collection<GpsPoint>> gpsData = null;
+	    Collection<Marker> markerData = null;
+	    if (ExtensionFileFilter.filters[ExtensionFileFilter.GPX].acceptName(fn)) {
+	    	RawGpsReader r = null;
+	    	if (file.getName().endsWith(".gpx.gz"))
+	    		r = new RawGpsReader(new GZIPInputStream(new FileInputStream(file)), file.getAbsoluteFile().getParentFile());
+	    	else
+	    		r = new RawGpsReader(new FileInputStream(file), file.getAbsoluteFile().getParentFile());
+	    	gpsData = r.trackData;
+	    	markerData = r.markerData;
+	    } else if (ExtensionFileFilter.filters[ExtensionFileFilter.CSV].acceptName(fn)) {
+	    	gpsData = new LinkedList<Collection<GpsPoint>>();
+	    	gpsData.add(new RawCsvReader(new FileReader(file)).parse());
+	    } else
+	    	throw new IllegalStateException();
+	    if (gpsData != null && !gpsData.isEmpty())
+	    	Main.main.addLayer(new RawGpsLayer(false, gpsData, tr("Tracks from {0}", file.getName()), file));
+	    if (markerData != null && !markerData.isEmpty())
+	    	Main.main.addLayer(new MarkerLayer(markerData, tr ("Markers from {0}", file.getName()), file));
+    }
+
+	/**
+	 * @return Return whether the file should be opened as raw gps data. May ask the
+	 * user, if unsure.
+	 */
+	private boolean asRawData(String fn) {
+		if (ExtensionFileFilter.filters[ExtensionFileFilter.CSV].acceptName(fn))
+			return true;
+		if (!ExtensionFileFilter.filters[ExtensionFileFilter.GPX].acceptName(fn))
+			return false;
+		return true;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/PreferencesAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/PreferencesAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/PreferencesAction.java	(revision 321)
@@ -0,0 +1,52 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+
+import javax.swing.JDialog;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.preferences.PreferenceDialog;
+import org.openstreetmap.josm.tools.GBC;
+
+/**
+ * Open the Preferences dialog.
+ *
+ * @author imi
+ */
+public class PreferencesAction extends JosmAction {
+
+	/**
+	 * Create the preference action with "&Preferences" as label.
+	 */
+	public PreferencesAction() {
+		super(tr("Preferences"), "preference", tr("Open a preferences page for global settings."), KeyEvent.VK_F12, 0, true);
+	}
+
+	/**
+	 * Launch the preferences dialog.
+	 */
+	public void actionPerformed(ActionEvent e) {
+		PreferenceDialog prefDlg = new PreferenceDialog();
+		JPanel prefPanel = new JPanel(new GridBagLayout());
+		prefPanel.add(prefDlg, GBC.eol().fill(GBC.BOTH));
+
+		JOptionPane pane = new JOptionPane(prefPanel, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
+		JDialog dlg = pane.createDialog(Main.parent, tr("Preferences"));
+
+		if (dlg.getWidth() > 600)
+			dlg.setSize(600, dlg.getHeight());
+		if (dlg.getHeight() > 600)
+			dlg.setSize(dlg.getWidth(),600);
+
+		dlg.setVisible(true);
+		if (pane.getValue() instanceof Integer && (Integer)pane.getValue() == JOptionPane.OK_OPTION)
+			prefDlg.ok();
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/RedoAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/RedoAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/RedoAction.java	(revision 321)
@@ -0,0 +1,34 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
+
+import org.openstreetmap.josm.Main;
+
+
+/**
+ * Redoes the last command.
+ * 
+ * @author imi
+ */
+public class RedoAction extends JosmAction {
+
+	/**
+	 * Construct the action with "Undo" as label.
+	 */
+	public RedoAction() {
+		super(tr("Redo"), "redo", tr("Redo the last undone action."), KeyEvent.VK_Z, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK, true);
+		setEnabled(false);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		if (Main.map == null)
+			return;
+		Main.map.repaint();
+		Main.main.undoRedo.redo();
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/RenameLayerAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/RenameLayerAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/RenameLayerAction.java	(revision 321)
@@ -0,0 +1,94 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.io.File;
+
+import javax.swing.AbstractAction;
+import javax.swing.Box;
+import javax.swing.JCheckBox;
+import javax.swing.JDialog;
+import javax.swing.JOptionPane;
+import javax.swing.JTextField;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * Action to rename an specific layer. Provides the option to rename the
+ * file, this layer was loaded from as well (if it was loaded from a file).
+ * 
+ * @author Imi
+ */
+public class RenameLayerAction extends AbstractAction {
+
+	private File file;
+	private Layer layer;
+
+	/**
+	 * @param file The filen of the original location of this layer.
+	 * 		If null, no possibility to "rename the file as well" is provided. 
+	 */
+	public RenameLayerAction(File file, Layer layer) {
+		super(tr("Rename layer"), ImageProvider.get("dialogs", "edit"));
+		this.file = file;
+		this.layer = layer;
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		Box panel = Box.createVerticalBox();
+		final JTextField name = new JTextField(layer.name);
+		panel.add(name);
+		JCheckBox filerename = new JCheckBox(tr("Also rename the file"));
+		if (Main.applet) {
+			filerename.setEnabled(false);
+			filerename.setSelected(false);
+		} else {
+			panel.add(filerename);
+			filerename.setEnabled(file != null);
+		}
+		if (filerename.isEnabled())
+			filerename.setSelected(Main.pref.getBoolean("layer.rename-file", true));
+
+		final JOptionPane optionPane = new JOptionPane(panel, JOptionPane.QUESTION_MESSAGE, JOptionPane.OK_CANCEL_OPTION){
+			@Override public void selectInitialValue() {
+				name.requestFocusInWindow();
+				name.selectAll();
+			}
+		};
+		final JDialog dlg = optionPane.createDialog(Main.parent, tr("Rename layer"));
+		dlg.setVisible(true);
+
+		Object answer = optionPane.getValue();
+		if (answer == null || answer == JOptionPane.UNINITIALIZED_VALUE ||
+				(answer instanceof Integer && (Integer)answer != JOptionPane.OK_OPTION)) {
+			return;
+		}
+
+		String nameText = name.getText();
+		if (filerename.isEnabled()) {
+			Main.pref.put("layer.rename-file", filerename.isSelected());
+			if (filerename.isSelected()) {
+				String newname = nameText;
+				if (newname.indexOf("/") == -1 && newname.indexOf("\\") == -1)
+					newname = file.getParent() + File.separator + newname;
+				String oldname = file.getName();
+				if (name.getText().indexOf('.') == -1 && oldname.indexOf('.') >= 0)
+					newname += oldname.substring(oldname.lastIndexOf('.'));
+				File newFile = new File(newname);
+				if (file.renameTo(newFile)) {
+					layer.associatedFile = newFile;
+					nameText = newFile.getName();
+				} else {
+					JOptionPane.showMessageDialog(Main.parent, tr("Could not rename the file \"{0}\".", file.getPath()));
+					return;
+				}
+			}
+		}
+		layer.name = nameText;
+		Main.parent.repaint();
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/ReorderAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/ReorderAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/ReorderAction.java	(revision 321)
@@ -0,0 +1,252 @@
+//License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.HashMap;
+
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.command.ChangeCommand;
+import org.openstreetmap.josm.command.Command;
+import org.openstreetmap.josm.command.SequenceCommand;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.osm.visitor.NameVisitor;
+
+public class ReorderAction extends JosmAction {
+
+	public ReorderAction() {
+		super(tr("Reorder Segments"), "reorder", tr("Try to reorder segments of a way so that they are in a line. May try to flip segments around to match a line."), KeyEvent.VK_R, KeyEvent.CTRL_DOWN_MASK | KeyEvent.ALT_DOWN_MASK, true);
+	}
+
+	/**
+	 * This method first sorts all the segments in a way, then makes sure that all 
+	 * the segments are facing the same direction as the first one.
+	 */
+	public void actionPerformed(ActionEvent e) {
+		Collection<Way> ways = new LinkedList<Way>();
+		for (OsmPrimitive osm : Main.ds.getSelected())
+			if (osm instanceof Way)
+				ways.add((Way)osm);
+
+		if (ways.size() < 1) {
+			JOptionPane.showMessageDialog(Main.parent, tr("Please select at least one way."));
+			return;
+		}
+
+		if (ways.size() > 1) {
+			int answer = JOptionPane.showConfirmDialog(Main.parent, 
+					trn(null, "You selected more than one way. Reorder the segments of {0} ways?", ways.size(), ways.size()), 
+					tr("Reorder segments"), JOptionPane.OK_CANCEL_OPTION);
+			if (answer != JOptionPane.OK_OPTION)
+				return;
+		}
+		boolean doneSomething = false;
+		for (Way way : ways) {
+			if (!way.isIncomplete() && way.segments.size() > 1)
+			{			
+				doneSomething = true;
+				Command c = reorderWay(way);
+
+				if( c != null )
+					Main.main.undoRedo.add(c);
+			}
+		}
+		if (!doneSomething) {
+			JOptionPane.showMessageDialog(Main.parent, 
+					trn("The selected way is incomplete or has only one segment.",
+							"None of the selected ways are complete and have more than one segment.",
+							ways.size()));
+		}
+		Main.map.repaint();
+	}
+
+	/**
+	 * This method first sorts all the segments in a way, then makes sure that all 
+	 * the segments are facing the same direction as the first one.
+	 * @param way The way to reorder
+	 * @return The command needed to reorder the way
+	 */
+	public static Command reorderWay(Way way) {
+		final LinkedList<Segment> sel = new LinkedList<Segment>(sortSegments(new LinkedList<Segment>(way.segments), false));   	
+
+		Collection<Command> c = new LinkedList<Command>();
+
+		boolean direction = false;
+		// work out the "average" direction of the way, we use this to direct the rest of the segments
+		int dirCounter = 0;
+		for(int i = 0; i < sel.size() - 1; i++)
+		{
+			Segment firstSegment = sel.get(i);
+			Segment secondSegment = sel.get(i+1);
+			if ( firstSegment.to == secondSegment.from || firstSegment.to == secondSegment.to ) // direction = true when 'from' is the first node in the Way
+				dirCounter++;
+			else
+				dirCounter--;
+		}
+		if ( dirCounter <= 0 )
+			direction = false;
+		else
+			direction = true;
+
+		Node lastNode = null;
+
+		// we need to calculate what the first node in the way is, we work from there
+		Segment firstSegment = sel.getFirst();
+		Segment secondSegment = sel.get(1);
+		if (firstSegment.to == secondSegment.from || firstSegment.to == secondSegment.to)
+			lastNode = firstSegment.from;
+		else
+			lastNode = firstSegment.to;
+
+		// go through each segment and flip them if required
+		for (Segment s : sel) {
+			Segment snew = new Segment(s);
+			boolean segDirection = s.from == lastNode;
+			// segDirection = true when the 'from' node occurs before the 'to' node in the Way 
+			if (direction != segDirection)
+			{    			
+				// reverse the segment's direction
+				Node n = snew.from;
+				snew.from = snew.to;
+				snew.to = n;
+				c.add(new ChangeCommand(s, snew));
+			}	
+
+			if (direction) // if its facing forwards,
+				lastNode = snew.to; // our next node is the 'to' one
+			else
+				lastNode = snew.from; // otherwise its the 'from' one
+		}
+
+		LinkedList<Segment> segments = new LinkedList<Segment>();
+
+		// Now we recreate the segment list, in the correct order of the direction
+		for (Segment s : sel) 
+			if (!direction) 
+				segments.addFirst(s);
+			else
+				segments.addLast(s);
+
+		// Check if the new segment list is actually different from the old one
+		// before we go and add a change command for it
+		for(int i = 0; i < segments.size(); i++)
+			if (way.segments.get(i) != segments.get(i))
+			{
+				Way newWay = new Way(way);
+				newWay.segments.clear();
+				newWay.segments.addAll(segments);
+				c.add(new ChangeCommand(way, newWay));
+				break;
+			}
+
+		// Check we've got some change commands before we add a sequence command
+		if (c.size() != 0) {
+			NameVisitor v = new NameVisitor();
+			way.visit(v);
+			return new SequenceCommand(tr("Reorder segments for way {0}",v.name), c);
+		}
+		return null;
+	}
+
+	/**
+	 * This sort is based on the sort in the old ReorderAction, but it can work 
+	 * irresepective of the direction of the segments. This produces a sort 
+	 * that can be useful even if the segments are facing the wrong direction.
+	 * 
+	 * @param segments list of segments to be sorted
+	 * @param strict true if segment direction should be observed, false if not
+	 */
+	public static LinkedList<Segment> sortSegments(LinkedList<Segment> segments, boolean strict) {
+
+		LinkedList<Segment> sortedSegments = new LinkedList<Segment>();
+
+		while (!segments.isEmpty()) {
+			LinkedList<Segment> pivotList = new LinkedList<Segment>();
+			pivotList.add(firstSegment(segments));
+			segments.remove(pivotList.getLast());
+			boolean found;
+			do {
+				found = false;
+				//try working forwards first
+				for (Iterator<Segment> it = segments.iterator(); it.hasNext();) {
+					Segment ls = it.next();
+					if (ls.incomplete)
+						continue; // incomplete segments are never added to a new way
+					if (ls.from == pivotList.getLast().to) {
+						pivotList.addLast(ls);
+						it.remove();
+						found = true;
+					}
+				}
+				if(!found){
+					for (Iterator<Segment> it = segments.iterator(); it.hasNext();) {
+						Segment ls = it.next();
+						if (ls.incomplete)
+							continue; // incomplete segments are never added to a new way
+						if (ls.from == pivotList.getLast().to || (!strict && (ls.to == pivotList.getLast().to || ls.from == pivotList.getLast().from || ls.to == pivotList.getLast().from))) {
+							pivotList.addLast(ls);
+							it.remove();
+							found = true;
+						} else if (ls.to == pivotList.getFirst().from || (!strict && (ls.from == pivotList.getFirst().from || ls.to == pivotList.getFirst().to || ls.from == pivotList.getFirst().to))) {
+							pivotList.addFirst(ls);
+							it.remove(); 
+							found = true;
+						}
+					}
+				}
+			} while (found);
+			sortedSegments.addAll(pivotList);
+		}
+		return sortedSegments;
+	}
+
+	/**
+	 * This method searches for a good segment to start a reorder from.
+	 * In most cases this will be a segment with a start node that occurs only
+	 * once in the way. In cases with loops, this could be any odd number. If no nodes
+	 * are referenced an odd number of times, then any segment is a good start point.
+	 */
+	public static Segment firstSegment(Collection<Segment> segments) {
+		HashMap<Node, Integer> refCount = new HashMap<Node, Integer>(segments.size()*2);
+		//loop through all segments and count up how many times each node is referenced
+		for (Segment seg : segments) {
+			if (!refCount.containsKey(seg.from))
+				refCount.put(seg.from, 0);
+			refCount.put(seg.from,refCount.get(seg.from)+1);
+
+			if (!refCount.containsKey(seg.to))
+				refCount.put(seg.to, 0);
+			refCount.put(seg.to,refCount.get(seg.to)+1);
+		}
+
+		//now look for start nodes that are referenced only once
+		for (Segment seg : segments)
+			if (refCount.get(seg.from) == 1)
+				return seg;
+		//now look for start nodes that are referenced only (2n+1)
+		for (Segment seg : segments)
+			if (refCount.get(seg.from) % 2 == 1)
+				return seg;
+		//now look for end nodes that are referenced only once
+		for (Segment seg : segments)
+			if (refCount.get(seg.to) == 1)
+				return seg;
+		//now look for end nodes that are referenced only (2n+1)
+		for (Segment seg : segments)
+			if (refCount.get(seg.to) % 2 == 1)
+				return seg;
+
+		return segments.iterator().next();
+	}    
+}
Index: /trunk/src/org/openstreetmap/josm/actions/ReverseSegmentAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/ReverseSegmentAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/ReverseSegmentAction.java	(revision 321)
@@ -0,0 +1,59 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+/**
+ * 
+ */
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+import java.util.Collection;
+import java.util.LinkedList;
+
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.command.ChangeCommand;
+import org.openstreetmap.josm.command.Command;
+import org.openstreetmap.josm.command.SequenceCommand;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.osm.visitor.Visitor;
+
+public final class ReverseSegmentAction extends JosmAction {
+
+    public ReverseSegmentAction() {
+    	super(tr("Reverse segments"), "segmentflip", tr("Reverse the direction of all selected Segments."), KeyEvent.VK_R, KeyEvent.CTRL_MASK | KeyEvent.SHIFT_MASK, true);
+    }
+
+	public void actionPerformed(ActionEvent e) {
+    	final Collection<Segment> sel = new LinkedList<Segment>();
+    	new Visitor(){
+			public void visit(Node n)    {}
+			public void visit(Segment s) {sel.add(s);}
+			public void visit(Way w)     {sel.addAll(w.segments);}
+			public void visitAll() {
+				for (OsmPrimitive osm : Main.ds.getSelected())
+					osm.visit(this);
+			}
+    	}.visitAll();
+
+    	if (sel.isEmpty()) {
+    		JOptionPane.showMessageDialog(Main.parent, tr("Please select at least one segment."));
+    		return;
+    	}
+    	Collection<Command> c = new LinkedList<Command>();
+    	for (Segment s : sel) {
+    		Segment snew = new Segment(s);
+    		Node n = snew.from;
+    		snew.from = snew.to;
+    		snew.to = n;
+    		c.add(new ChangeCommand(s, snew));
+    	}
+    	Main.main.undoRedo.add(new SequenceCommand(tr("Reverse Segments"), c));
+    	Main.map.repaint();
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/actions/SaveAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/SaveAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/SaveAction.java	(revision 321)
@@ -0,0 +1,32 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
+import java.io.File;
+
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+
+/**
+ * Export the data  as OSM intern xml file.
+ * 
+ * @author imi
+ */
+public class SaveAction extends SaveActionBase {
+    
+	/**
+	 * Construct the action with "Save" as label.
+	 * @param layer Save this layer.
+	 */
+	public SaveAction(OsmDataLayer layer) {
+		super(tr("Save"), "save", tr("Save the current data."), KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK, layer);
+	}
+	
+	@Override public File getFile(OsmDataLayer layer) {
+		if (layer.associatedFile != null)
+			return layer.associatedFile;
+		return openFileDialog();
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/SaveActionBase.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/SaveActionBase.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/SaveActionBase.java	(revision 321)
@@ -0,0 +1,167 @@
+//License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
+import javax.swing.JFileChooser;
+import javax.swing.JOptionPane;
+import javax.swing.filechooser.FileFilter;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.io.OsmWriter;
+
+public abstract class SaveActionBase extends DiskAccessAction {
+
+	private OsmDataLayer layer;
+
+	public SaveActionBase(String name, String iconName, String tooltip, int shortCut, int modifiers, OsmDataLayer layer) {
+		super(name, iconName, tooltip, shortCut, modifiers);
+		this.layer = layer;
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		OsmDataLayer layer = this.layer;
+		if (layer == null && Main.map != null && Main.map.mapView.getActiveLayer() instanceof OsmDataLayer)
+			layer = (OsmDataLayer)Main.map.mapView.getActiveLayer();
+		if (layer == null)
+			layer = Main.main.editLayer();
+
+		if (!checkSaveConditions(layer))
+			return;
+
+
+		File file = getFile(layer);
+		if (file == null)
+			return;
+
+		save(file, layer);
+
+		layer.name = file.getName();
+		layer.associatedFile = file;
+		Main.parent.repaint();
+	}
+
+	protected abstract File getFile(OsmDataLayer layer);
+
+	/**
+	 * Checks whether it is ok to launch a save (whether we have data,
+	 * there is no conflict etc...)
+	 * @return <code>true</code>, if it is save to save.
+	 */
+	public boolean checkSaveConditions(OsmDataLayer layer) {
+		if (Main.map == null) {
+			JOptionPane.showMessageDialog(Main.parent, tr("No document open so nothing to save."));
+			return false;
+		}
+		if (isDataSetEmpty(layer) && JOptionPane.NO_OPTION == JOptionPane.showConfirmDialog(Main.parent,tr("The document contains no data. Save anyway?"), tr("Empty document"), JOptionPane.YES_NO_OPTION))
+			return false;
+		if (!Main.map.conflictDialog.conflicts.isEmpty()) {
+			int answer = JOptionPane.showConfirmDialog(Main.parent, 
+					tr("There are unresolved conflicts. Conflicts will not be saved and handled as if you rejected all. Continue?"),tr("Conflicts"), JOptionPane.YES_NO_OPTION);
+			if (answer != JOptionPane.YES_OPTION)
+				return false;
+		}
+		return true;
+	}
+
+	public static File openFileDialog() {
+		JFileChooser fc = createAndOpenFileChooser(false, false);
+		if (fc == null)
+			return null;
+
+		File file = fc.getSelectedFile();
+
+		String fn = file.getPath();
+		if (fn.indexOf('.') == -1) {
+			FileFilter ff = fc.getFileFilter();
+			if (ff instanceof ExtensionFileFilter)
+				fn = "." + ((ExtensionFileFilter)ff).defaultExtension;
+			else
+				fn += ".osm";
+			file = new File(fn);
+		}
+		return file;
+	}
+
+	private static void copy(File src, File dst) throws IOException {
+		FileInputStream srcStream;
+		FileOutputStream dstStream;
+		try {
+			srcStream = new FileInputStream(src);
+			dstStream = new FileOutputStream(dst);
+		} catch (FileNotFoundException e) {
+			JOptionPane.showMessageDialog(Main.parent, tr("Could not back up file.")+"\n"+e.getMessage());
+			return;
+		}
+		byte buf[] = new byte[1<<16];
+		int len;
+		while ((len = srcStream.read(buf)) != -1) {
+			dstStream.write(buf, 0, len);
+		}
+		srcStream.close();
+		dstStream.close();
+	}
+
+	public static void save(File file, OsmDataLayer layer) {
+		File tmpFile = null;
+		try {
+			if (ExtensionFileFilter.filters[ExtensionFileFilter.GPX].acceptName(file.getPath())) {
+				GpxExportAction.exportGpx(file, layer);
+			} else if (ExtensionFileFilter.filters[ExtensionFileFilter.OSM].acceptName(file.getPath())) {
+				// use a tmp file because if something errors out in the
+				// process of writing the file, we might just end up with
+				// a truncated file.  That can destroy lots of work.
+				if (file.exists()) {
+					tmpFile = new File(file.getPath() + "~");
+					copy(file, tmpFile);
+				}
+				OsmWriter.output(new FileOutputStream(file), new OsmWriter.All(layer.data, false));
+				if (!Main.pref.getBoolean("save.keepbackup"))
+					tmpFile.delete();
+			} else if (ExtensionFileFilter.filters[ExtensionFileFilter.CSV].acceptName(file.getPath())) {
+				JOptionPane.showMessageDialog(Main.parent, tr("CSV output not supported yet."));
+				return;
+			} else {
+				JOptionPane.showMessageDialog(Main.parent, tr("Unknown file extension."));
+				return;
+			}
+			layer.cleanData(null, false);
+		} catch (IOException e) {
+			e.printStackTrace();
+			JOptionPane.showMessageDialog(Main.parent, tr("An error occurred while saving.")+"\n"+e.getMessage());
+		}
+		try {
+			// if the file save failed, then the tempfile will not
+			// be deleted.  So, restore the backup if we made one.
+			if (tmpFile != null && tmpFile.exists()) {
+				copy(tmpFile, file);
+			}
+		} catch (IOException e) {
+			e.printStackTrace();
+			JOptionPane.showMessageDialog(Main.parent, tr("An error occurred while restoring backup file.")+"\n"+e.getMessage());
+		}
+	}
+
+	/**
+	 * Check the data set if it would be empty on save. It is empty, if it contains
+	 * no objects (after all objects that are created and deleted without beeing 
+	 * transfered to the server have been removed).
+	 *  
+	 * @return <code>true</code>, if a save result in an empty data set.
+	 */
+	private boolean isDataSetEmpty(OsmDataLayer layer) {
+		for (OsmPrimitive osm : layer.data.allNonDeletedPrimitives())
+			if (!osm.deleted || osm.id > 0)
+				return false;
+		return true;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/SaveAsAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/SaveAsAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/SaveAsAction.java	(revision 321)
@@ -0,0 +1,30 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
+import java.io.File;
+
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+
+/**
+ * Export the data  as OSM intern xml file.
+ * 
+ * @author imi
+ */
+public class SaveAsAction extends SaveActionBase {
+    
+	/**
+	 * Construct the action with "Save" as label.
+	 * @param layer Save this layer.
+	 */
+	public SaveAsAction(OsmDataLayer layer) {
+		super(tr("Save as"), "save_as", tr("Save the current data to a new file."), KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK, layer);
+	}
+	
+	@Override protected File getFile(OsmDataLayer layer) {
+		return openFileDialog();
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/SelectAllAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/SelectAllAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/SelectAllAction.java	(revision 321)
@@ -0,0 +1,20 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+
+import org.openstreetmap.josm.Main;
+
+public class SelectAllAction extends JosmAction {
+
+	public SelectAllAction() {
+		super(tr("Select All"),"selectall", tr("Select all undeleted objects in the data layer. This selects incomplete objects too."), KeyEvent.VK_A, KeyEvent.CTRL_DOWN_MASK, true);
+    }
+
+	public void actionPerformed(ActionEvent e) {
+		Main.ds.setSelected(Main.ds.allNonDeletedPrimitives());
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java	(revision 321)
@@ -0,0 +1,505 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map.Entry;
+
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.command.AddCommand;
+import org.openstreetmap.josm.command.ChangeCommand;
+import org.openstreetmap.josm.command.Command;
+import org.openstreetmap.josm.command.SequenceCommand;
+import org.openstreetmap.josm.data.SelectionChangedListener;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.osm.visitor.NameVisitor;
+import org.openstreetmap.josm.data.osm.visitor.Visitor;
+
+/**
+ * Splits a way into multiple ways (all identical except the segments
+ * belonging to the way).
+ * 
+ * Various split modes are used depending on what is selected.
+ * 
+ * 1. One or more NODES (and, optionally, also one way) selected:
+ * 
+ * (All nodes must be part of the same way. If a way is also selected, that way
+ * must contain all selected nodes.)
+ * 
+ * Way is split AT the node(s) into contiguous ways. If the original contained
+ * one or more parts that were not reachable from any of the nodes, they form an
+ * extra new way. Examples (numbers are unselected nodes, letters are selected
+ * nodes)
+ * 
+ * 1---A---2  becomes  1---A and A---2
+ * 
+ * 1---A---2---B---3  becomes  1---A and A---2---B and B---3
+ *  
+ *     2                    
+ *     |                   
+ * 1---A---3  becomes  1---A and 2---A and A---3
+ *
+ * 1---A---2  3---4  becomes  1---A and A---2 and 3---4
+ * 
+ * If the selected node(s) do not clearly define the way that is to be split,
+ * then the way must be selected for disambiguation (e.g. you have two ways,
+ * 1---2---3 and 4---2---5, and select node 2, then you must also select the 
+ * way you want to split).
+ * 
+ * This function will result in at least two ways, unless the selected node is
+ * at the end of the way AND the way is contiguous, which will lead to an error
+ * message.
+ * 
+ * After executing the operation, the selection will be cleared.
+ * 
+ * 2. One or more SEGMENTS (and, optionally, also one way) selected:
+ * 
+ * (All segments must be part of the same way)
+ * 
+ * The way is split in a fashion that makes a new way from the selected segments,
+ * i.e. the selected segments are removed from the way to form a new one.
+ * 
+ * This function will result in exactly two ways. 
+ * 
+ * If splitting the segments out of the way makes a non-contiguous part from
+ * something that was contiguous before, the action is aborted and an error
+ * message is shown.
+ * 
+ * 3. Exactly one WAY selected
+ * 
+ * If the way is contiguous, you will get an error message. If the way is not
+ * contiguous it is split it into 2...n contiguous ways.
+ */
+
+public class SplitWayAction extends JosmAction implements SelectionChangedListener {
+
+	private Way selectedWay;
+	private List<Node> selectedNodes;
+	private List<Segment> selectedSegments;
+
+	/**
+	 * Create a new SplitWayAction.
+	 */
+	public SplitWayAction() {
+		super(tr("Split Way"), "splitway", tr("Split a way at the selected node."), KeyEvent.VK_P, KeyEvent.CTRL_MASK | KeyEvent.SHIFT_MASK, true);
+		DataSet.listeners.add(this);
+	}
+
+	/**
+	 * Called when the action is executed.
+	 * 
+	 * This method performs an expensive check whether the selection clearly defines one
+	 * of the split actions outlined above, and if yes, calls the splitWay method.
+	 */
+	public void actionPerformed(ActionEvent e) {
+
+		Collection<OsmPrimitive> selection = Main.ds.getSelected();
+
+		if (!checkSelection(selection)) {
+			JOptionPane.showMessageDialog(Main.parent, tr("The current selection cannot be used for splitting."));
+			return;
+		}
+
+		selectedWay = null;
+		selectedNodes = null;
+		selectedSegments = null;
+
+		Visitor splitVisitor = new Visitor(){
+			public void visit(Node n) {
+				if (selectedNodes == null)
+					selectedNodes = new LinkedList<Node>();
+				selectedNodes.add(n);
+            }
+			public void visit(Segment s) {
+				if (selectedSegments == null)
+					selectedSegments = new LinkedList<Segment>();
+				selectedSegments.add(s);
+            }
+			public void visit(Way w) {
+				selectedWay = w;
+            }
+		};
+		
+		for (OsmPrimitive p : selection)
+			p.visit(splitVisitor);
+
+		// If only nodes are selected, try to guess which way to split. This works if there
+		// is exactly one way that all nodes are part of.
+		if (selectedWay == null && selectedNodes != null) {
+			HashMap<Way, Integer> wayOccurenceCounter = new HashMap<Way, Integer>();
+			for (Node n : selectedNodes) {
+				for (Way w : Main.ds.ways) {
+					for (Segment s : w.segments) {
+						if (n.equals(s.from) || n.equals(s.to)) {
+							Integer old = wayOccurenceCounter.get(w);
+							wayOccurenceCounter.put(w, (old == null) ? 1 : old+1);
+							break;
+						}
+					}
+				}
+			}
+			if (wayOccurenceCounter.isEmpty()) {
+				JOptionPane.showMessageDialog(Main.parent, 
+						trn("The selected node is not part of any way.",
+								"The selected nodes are not part of any way.", selectedNodes.size()));
+				return;
+			}
+
+			for (Entry<Way, Integer> entry : wayOccurenceCounter.entrySet()) {
+				if (entry.getValue().equals(selectedNodes.size())) {
+					if (selectedWay != null) {
+						JOptionPane.showMessageDialog(Main.parent, tr("There is more than one way using the node(s) you selected. Please select the way also."));
+						return;
+					}
+					selectedWay = entry.getKey();
+				}
+			}
+
+			if (selectedWay == null) {
+				JOptionPane.showMessageDialog(Main.parent, tr("The selected nodes do not share the same way."));
+				return;
+			}
+
+			// If a way and nodes are selected, verify that the nodes are part of the way.
+		} else if (selectedWay != null && selectedNodes != null) {
+
+			HashSet<Node> nds = new HashSet<Node>(selectedNodes);
+			for (Segment s : selectedWay.segments) {
+				nds.remove(s.from);
+				nds.remove(s.to);
+			}
+			if (!nds.isEmpty()) {
+				JOptionPane.showMessageDialog(Main.parent, 
+						trn("The selected way does not contain the selected node.",
+								"The selected way does not contain all the selected nodes.", selectedNodes.size()));
+				return;
+			}
+
+			// If only segments are selected, guess which way to use.
+		} else if (selectedWay == null && selectedSegments != null) {
+
+			HashMap<Way, Integer> wayOccurenceCounter = new HashMap<Way, Integer>();
+			for (Segment s : selectedSegments) {
+				for (Way w : Main.ds.ways) {
+					if (w.segments.contains(s)) {
+						Integer old = wayOccurenceCounter.get(w);
+						wayOccurenceCounter.put(w, (old == null) ? 1 : old+1);
+						break;
+					}
+				}
+			}
+			if (wayOccurenceCounter.isEmpty()) {
+				JOptionPane.showMessageDialog(Main.parent, 
+						trn("The selected segment is not part of any way.",
+								"The selected segments are not part of any way.", selectedSegments.size()));
+				return;
+			}
+
+			for (Entry<Way, Integer> entry : wayOccurenceCounter.entrySet()) {
+				if (entry.getValue().equals(selectedSegments.size())) {
+					if (selectedWay != null) {
+						JOptionPane.showMessageDialog(Main.parent,
+								trn("There is more than one way using the segment you selected. Please select the way also.",
+										"There is more than one way using the segments you selected. Please select the way also.", selectedSegments.size()));
+						return;
+					}
+					selectedWay = entry.getKey();
+				}
+			}
+
+			if (selectedWay == null) {
+				JOptionPane.showMessageDialog(Main.parent, tr("The selected segments do not share the same way."));
+				return;
+			}
+
+			// If a way and segments are selected, verify that the segments are part of the way.
+		} else if (selectedWay != null && selectedSegments != null) {
+
+			if (!selectedWay.segments.containsAll(selectedSegments)) {
+				JOptionPane.showMessageDialog(Main.parent, 
+						trn("The selected way does not contain the selected segment.",
+								"The selected way does not contain all the selected segments.", selectedSegments.size()));
+				return;
+			}
+		}
+
+		// finally check if the selected way is complete.
+		if (selectedWay.isIncomplete()) {
+			JOptionPane.showMessageDialog(Main.parent, tr("Warning: This way is incomplete. Try to download it before splitting."));
+			return;
+		}
+
+		// and then do the work.
+		splitWay();
+	}
+
+	/** 
+	 * Checks if the selection consists of something we can work with.
+	 * Checks only if the number and type of items selected looks good;
+	 * does not check whether the selected items are really a valid 
+	 * input for splitting (this would be too expensive to be carried
+	 * out from the selectionChanged listener).
+	 */	
+	private boolean checkSelection(Collection<? extends OsmPrimitive> selection) {
+		boolean way = false;
+		boolean segment = false;
+		boolean node = false;
+		for (OsmPrimitive p : selection) {
+			if (p instanceof Way && !way)
+				way = true;
+			else if (p instanceof Node && !segment)
+				node = true;
+			else if (p instanceof Segment && !node)
+				segment = true;
+			else
+				return false;
+		}
+		return way || segment || node;
+	}
+
+	/**
+	 * Split a way into two or more parts, starting at a selected node.
+	 * 
+	 * @param way the way to split
+	 * @param nodes the node(s) to split the way at; must be part of the way.
+	 */
+	private void splitWay() {
+
+		// The basic idea is to first divide all segments forming this way into 
+		// groups, and later form new ways according to the groups. Initally, 
+		// all segments are copied into allSegments, and then gradually removed
+		// from there as new groups are built.
+
+		LinkedList<Segment> allSegments = new LinkedList<Segment>();
+		allSegments.addAll(selectedWay.segments);
+		List<List<Segment>> segmentSets = new ArrayList<List<Segment>>();
+
+		if (selectedNodes != null) {
+
+			// This is the "split at node" mode.
+
+			boolean split = true;
+			Segment splitSeg = null;
+			while (split) {
+				split = false;
+
+				// Look for a "split segment". A split segment is any segment
+				// that touches one of the split nodes and has not yet been
+				// assigned to one of the segment groups.
+				for (Segment s : allSegments) {
+					for (Node node : selectedNodes) {
+						if (s.from.equals(node) || s.to.equals(node)) {
+							split = true;
+							splitSeg = s;
+							break;
+						}
+					}
+					if (split)
+						break;
+				}
+
+				// If a split segment was found, move this segment and all segments
+				// connected to it into a new segment group, stopping only if we
+				// reach another split node. Segment moving is done recursively by
+				// the moveSegments method.
+				if (split) {
+					LinkedList<Segment> subSegments = new LinkedList<Segment>();
+					moveSegments(allSegments, subSegments, splitSeg, selectedNodes);
+					segmentSets.add(subSegments);
+				}
+
+				// The loop continues until no more split segments were found.
+				// Nb. not all segments touching a split node are split segments; 
+				// e.g. 
+				//
+				//     2       4
+				//     |       |
+				// 1---A---3---C---5
+				//
+				// This way will be split into 5 ways (1---A,2---A,A---3---C,4---C,
+				// C---5). Depending on which is processed first, either A---3 becomes
+				// a split segment and 3---C is moved as a connecting segment, or vice
+				// versa. The result is, of course, the same but this explains why we
+				// cannot simply start a new way for each segment connecting to a split
+				// node.
+			}
+
+		} else if (selectedSegments != null) {
+
+			// This is the "split segments" mode. It is quite easy as the segments to
+			// remove are already explicitly selected, but some restrictions have to 
+			// be observed to make sure that no non-contiguous parts are created.
+
+			// first create a "scratch" copy of the full segment list and move all
+			// segments connected to the first selected segment into a temporary list.
+			LinkedList<Segment> copyOfAllSegments = new LinkedList<Segment>(allSegments);
+			LinkedList<Segment> partThatContainsSegments = new LinkedList<Segment>();
+			moveSegments(copyOfAllSegments, partThatContainsSegments, selectedSegments.get(0), null);
+
+			// this list must now contain ALL selected segments; otherwise, segments
+			// from unconnected parts of the way have been selected and this is not allowed
+			// as it would create a new non-contiguous way.
+			if (!partThatContainsSegments.containsAll(selectedSegments)) {
+				JOptionPane.showMessageDialog(Main.parent, tr("The selected segments are not in the same contiguous part of the way."));				
+				return;		
+			}
+
+			// if the contiguous part that contains the segments becomes non-contiguous
+			// after the removal of the segments, that is also an error.
+			partThatContainsSegments.removeAll(selectedSegments);
+			if (!partThatContainsSegments.isEmpty()) {
+				LinkedList<Segment> contiguousSubpart = new LinkedList<Segment>();
+				moveSegments(partThatContainsSegments, contiguousSubpart, partThatContainsSegments.get(0), null);
+				// if partThatContainsSegments was contiguous before, it will now be empty as all segments
+				// connected to the first segment therein have been moved
+				if (!partThatContainsSegments.isEmpty()) {
+					JOptionPane.showMessageDialog(Main.parent, tr("Removing the selected segments would make a part of the way non-contiguous."));				
+					return;				
+				}
+			}
+
+			ArrayList<Segment> subSegments = new ArrayList<Segment>();
+			subSegments.addAll(selectedSegments);
+			allSegments.removeAll(selectedSegments);
+			segmentSets.add(subSegments);
+
+		} else {
+
+			// This is the "split way into contiguous parts" mode.
+			// We use a similar mechanism to splitting at nodes, but we do not 
+			// select split segments. Instead, we randomly grab a segment out 
+			// of the way and move all connecting segments to a new group. If
+			// segments remain in the original way, we repeat the procedure.
+
+			while (!allSegments.isEmpty()) {
+				LinkedList<Segment> subSegments = new LinkedList<Segment>();
+				moveSegments(allSegments, subSegments, allSegments.get(0), null);
+				segmentSets.add(subSegments);
+			}			
+		}
+
+		// We now have a number of segment groups.
+
+		// If segments remain in allSegments, this means that they were not reachable
+		// from any of the split nodes, and they will be made into an extra way.
+		if (!allSegments.isEmpty()) {
+			segmentSets.add(allSegments);
+		}
+
+		// If we do not have at least two parts, then the way was circular or the node(s)
+		// were at one end of the way. User error ;-)
+		if (segmentSets.size() < 2) {
+			if (selectedNodes != null) {
+				JOptionPane.showMessageDialog(Main.parent, tr("The way cannot be split at the selected node. (Hint: To split circular ways, select two nodes.)"));
+			} else {
+				JOptionPane.showMessageDialog(Main.parent, tr("The way cannot be split because it is contiguous. (Hint: To split at a node, select that node.)"));				
+			}
+			return;
+		}
+
+		// sort the list of segment lists according to their number of elements, so that
+		// the biggest part of the way comes first. That way, we will "change" the largest
+		// part of the way by removing a few segments, and "add" new, smaller ways; looks
+		// nicer.
+		Collections.sort(segmentSets, new Comparator<Collection<Segment>>() {
+			public int compare(Collection<Segment> a, Collection<Segment> b) {
+				if (a.size() < b.size())
+					return 1;
+				if (b.size() < a.size())
+					return -1;
+				return 0;
+			}
+		});
+
+		// build a list of commands, and also a list of ways
+		Collection<Command> commandList = new ArrayList<Command>(segmentSets.size());
+		Collection<Way> newSelection = new ArrayList<Way>(segmentSets.size());
+		Iterator<List<Segment>> segsIt = segmentSets.iterator();
+		
+		// the first is always a change to the existing way;
+		Way changedWay = new Way(selectedWay);
+		changedWay.segments.clear();
+		changedWay.segments.addAll(segsIt.next());
+		commandList.add(new ChangeCommand(selectedWay, changedWay));
+		newSelection.add(selectedWay);
+
+		// and commands 1...n are additions of new ways.
+		while (segsIt.hasNext()) {
+			Way wayToAdd = new Way();
+			if (selectedWay.keys != null)
+				wayToAdd.keys = new HashMap<String, String>(selectedWay.keys);
+			wayToAdd.segments.clear();
+			wayToAdd.segments.addAll(segsIt.next());
+			commandList.add(new AddCommand(wayToAdd));
+			newSelection.add(wayToAdd);
+		}
+
+		NameVisitor v = new NameVisitor();
+		v.visit(selectedWay);
+		Main.main.undoRedo.add(new SequenceCommand(tr("Split way {0} into {1} parts",v.name, segmentSets.size()), commandList));
+		Main.ds.setSelected(newSelection);
+	}
+
+	/**
+	 * Enable the "split way" menu option if the selection looks like we could use it.
+	 */
+	public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
+		setEnabled(checkSelection(newSelection));
+	}
+
+	/**
+	 * Move contiguous segments from one collection to another. The given segment is moved first, and
+	 * then the procedure is recursively called for all segments that connect to the first segment at
+	 * either end.
+	 * 
+	 * @param source the source collection
+	 * @param destination the destination collection
+	 * @param start the first segment to be moved
+	 * @param stopNodes collection of nodes which should be considered end points for moving (may be null).
+	 */
+	private void moveSegments(Collection<Segment> source, LinkedList<Segment> destination, Segment start, Collection<Node> stopNodes) {
+		source.remove(start);
+		if (destination.isEmpty() || destination.iterator().next().from.equals(start.to))
+			destination.addFirst(start);
+		else
+			destination.addLast(start);
+		Segment moveSeg = start;
+		while(moveSeg != null) {
+			moveSeg = null;
+
+			for (Node node : new Node[] { start.from, start.to }) {
+				if (stopNodes != null && stopNodes.contains(node))
+					continue;
+				for (Segment sourceSeg : source) {
+					if (sourceSeg.from.equals(node) || sourceSeg.to.equals(node)) {
+						moveSeg = sourceSeg;
+						break;
+					}
+				}
+				if (moveSeg != null)
+					break;
+			}
+			if (moveSeg != null) {
+				moveSegments(source, destination, moveSeg, stopNodes);
+			}
+		}
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/UndoAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/UndoAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/UndoAction.java	(revision 321)
@@ -0,0 +1,34 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
+
+import org.openstreetmap.josm.Main;
+
+
+/**
+ * Undoes the last command.
+ * 
+ * @author imi
+ */
+public class UndoAction extends JosmAction {
+
+	/**
+	 * Construct the action with "Undo" as label.
+	 */
+	public UndoAction() {
+		super(tr("Undo"), "undo", tr("Undo the last action."), KeyEvent.VK_Z, InputEvent.CTRL_DOWN_MASK, true);
+		setEnabled(false);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		if (Main.map == null)
+			return;
+		Main.map.repaint();
+		Main.main.undoRedo.undo();
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/UnselectAllAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/UnselectAllAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/UnselectAllAction.java	(revision 321)
@@ -0,0 +1,20 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+
+import org.openstreetmap.josm.Main;
+
+public class UnselectAllAction extends JosmAction {
+
+	public UnselectAllAction() {
+		super(tr("Unselect All"),"unselectall", tr("Unselect all objects."), KeyEvent.VK_A, KeyEvent.CTRL_DOWN_MASK | KeyEvent.SHIFT_DOWN_MASK, true);
+    }
+
+	public void actionPerformed(ActionEvent e) {
+		Main.ds.setSelected();
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/UploadAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/UploadAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/UploadAction.java	(revision 321)
@@ -0,0 +1,162 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
+import java.util.Collection;
+import java.util.LinkedList;
+
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.gui.OsmPrimitivRenderer;
+import org.openstreetmap.josm.gui.PleaseWaitRunnable;
+import org.openstreetmap.josm.io.OsmServerWriter;
+import org.openstreetmap.josm.tools.GBC;
+import org.xml.sax.SAXException;
+
+/**
+ * Action that opens a connection to the osm server and upload all changes.
+ *
+ * An dialog is displayed asking the user to specify a rectangle to grab.
+ * The url and account settings from the preferences are used.
+ *
+ * @author imi
+ */
+public class UploadAction extends JosmAction {
+	
+	/** Upload Hook */
+	public interface UploadHook {
+		/**
+		 * Checks the upload.
+		 * @param add The added primitives
+		 * @param update The updated primitives
+		 * @param delete The deleted primitives
+		 * @return true, if the upload can continue
+		 */
+		public boolean checkUpload(Collection<OsmPrimitive> add, Collection<OsmPrimitive> update, Collection<OsmPrimitive> delete);
+	}
+	
+	/**
+	 * The list of upload hooks. These hooks will be called one after the other
+	 * when the user wants to upload data. Plugins can insert their own hooks here
+	 * if they want to be able to veto an upload.
+	 * 
+	 * Be dafault, the standard upload dialog is the only element in the list.
+	 * Plugins shold normally insert their code before that, so that the upload
+	 * dialog is the last thing shown before upload really starts; on occasion
+	 * however, a plugin might also want to insert something after that.
+	 */
+	public final LinkedList<UploadHook> uploadHooks = new LinkedList<UploadHook>();
+
+	public UploadAction() {
+		super(tr("Upload to OSM"), "upload", tr("Upload all changes to the OSM server."), KeyEvent.VK_U, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK, true);
+
+		/**
+		 * Displays a screen where the actions that would be taken are displayed and
+		 * give the user the possibility to cancel the upload.
+		 */
+		uploadHooks.add(new UploadHook() {
+			public boolean checkUpload(Collection<OsmPrimitive> add, Collection<OsmPrimitive> update, Collection<OsmPrimitive> delete) {
+
+				JPanel p = new JPanel(new GridBagLayout());
+
+				OsmPrimitivRenderer renderer = new OsmPrimitivRenderer();
+
+				if (!add.isEmpty()) {
+					p.add(new JLabel(tr("Objects to add:")), GBC.eol());
+					JList l = new JList(add.toArray());
+					l.setCellRenderer(renderer);
+					l.setVisibleRowCount(l.getModel().getSize() < 6 ? l.getModel().getSize() : 10);
+					p.add(new JScrollPane(l), GBC.eol().fill());
+				}
+
+				if (!update.isEmpty()) {
+					p.add(new JLabel(tr("Objects to modify:")), GBC.eol());
+					JList l = new JList(update.toArray());
+					l.setCellRenderer(renderer);
+					l.setVisibleRowCount(l.getModel().getSize() < 6 ? l.getModel().getSize() : 10);
+					p.add(new JScrollPane(l), GBC.eol().fill());
+				}
+
+				if (!delete.isEmpty()) {
+					p.add(new JLabel(tr("Objects to delete:")), GBC.eol());
+					JList l = new JList(delete.toArray());
+					l.setCellRenderer(renderer);
+					l.setVisibleRowCount(l.getModel().getSize() < 6 ? l.getModel().getSize() : 10);
+					p.add(new JScrollPane(l), GBC.eol().fill());
+				}
+
+				return JOptionPane.showConfirmDialog(Main.parent, p, tr("Upload these changes?"),
+						JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION;
+			}
+		});
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		if (Main.map == null) {
+			JOptionPane.showMessageDialog(Main.parent,tr("Nothing to upload. Get some data first."));
+			return;
+		}
+
+		if (!Main.map.conflictDialog.conflicts.isEmpty()) {
+			JOptionPane.showMessageDialog(Main.parent,tr("There are unresolved conflicts. You have to resolve these first."));
+			Main.map.conflictDialog.action.button.setSelected(true);
+			Main.map.conflictDialog.action.actionPerformed(null);
+			return;
+		}
+
+		final LinkedList<OsmPrimitive> add = new LinkedList<OsmPrimitive>();
+		final LinkedList<OsmPrimitive> update = new LinkedList<OsmPrimitive>();
+		final LinkedList<OsmPrimitive> delete = new LinkedList<OsmPrimitive>();
+		for (OsmPrimitive osm : Main.ds.allPrimitives()) {
+			if (osm.get("josm/ignore") != null)
+				continue;
+			if (osm.id == 0 && !osm.deleted)
+				add.addLast(osm);
+			else if (osm.modified && !osm.deleted)
+				update.addLast(osm);
+			else if (osm.deleted && osm.id != 0)
+				delete.addFirst(osm);
+		}
+		
+		if (add.isEmpty() && update.isEmpty() && delete.isEmpty()) {
+			JOptionPane.showMessageDialog(Main.parent,tr("No changes to upload."));
+			return;
+		}
+
+		// Call all upload hooks in sequence. The upload confirmation dialog
+		// is one of these.
+		for(UploadHook hook : uploadHooks)
+			if(!hook.checkUpload(add, update, delete))
+				return;
+		
+		final OsmServerWriter server = new OsmServerWriter();
+		final Collection<OsmPrimitive> all = new LinkedList<OsmPrimitive>();
+		all.addAll(add);
+		all.addAll(update);
+		all.addAll(delete);
+
+		PleaseWaitRunnable uploadTask = new PleaseWaitRunnable(tr("Uploading data")){
+			@Override protected void realRun() throws SAXException {
+				server.uploadOsm(all);
+			}
+			@Override protected void finish() {
+				Main.main.editLayer().cleanData(server.processed, !add.isEmpty());
+			}
+			@Override protected void cancel() {
+				server.cancel();
+			}
+		};
+		Main.worker.execute(uploadTask);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java	(revision 321)
@@ -0,0 +1,83 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions.downloadtasks;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.io.IOException;
+import java.util.Collection;
+
+import javax.swing.JCheckBox;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.DownloadAction;
+import org.openstreetmap.josm.gui.PleaseWaitRunnable;
+import org.openstreetmap.josm.gui.download.DownloadDialog.DownloadTask;
+import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.RawGpsLayer;
+import org.openstreetmap.josm.gui.layer.RawGpsLayer.GpsPoint;
+import org.openstreetmap.josm.io.BoundingBoxDownloader;
+import org.xml.sax.SAXException;
+
+public class DownloadGpsTask implements DownloadTask {
+
+	private static class Task extends PleaseWaitRunnable {
+		private BoundingBoxDownloader reader;
+		private DownloadAction action;
+		private Collection<Collection<GpsPoint>> rawData;
+		private final boolean newLayer;
+
+		public Task(boolean newLayer, BoundingBoxDownloader reader, DownloadAction action) {
+			super(tr("Downloading GPS data"));
+			this.reader = reader;
+			this.action = action;
+			this.newLayer = newLayer;
+		}
+
+		@Override public void realRun() throws IOException, SAXException {
+			rawData = reader.parseRawGps();
+		}
+
+		@Override protected void finish() {
+			if (rawData == null)
+				return;
+			String name = action.dialog.minlat + " " + action.dialog.minlon + " x " + action.dialog.maxlat + " " + action.dialog.maxlon;
+			RawGpsLayer layer = new RawGpsLayer(true, rawData, name, null);
+			if (newLayer || findMergeLayer() == null)
+	            Main.main.addLayer(layer);
+			else
+				findMergeLayer().mergeFrom(layer);
+		}
+
+		private Layer findMergeLayer() {
+			if (Main.map == null)
+				return null;
+	        Layer active = Main.map.mapView.getActiveLayer();
+	        if (active != null && active instanceof RawGpsLayer)
+	        	return active;
+	        for (Layer l : Main.map.mapView.getAllLayers())
+	        	if (l instanceof RawGpsLayer && ((RawGpsLayer)l).fromServer)
+	        		return l;
+	        return null;
+        }
+
+		@Override protected void cancel() {
+			if (reader != null)
+				reader.cancel();
+		}
+	}
+
+	private JCheckBox checkBox = new JCheckBox(tr("Raw GPS data"));
+
+	public void download(DownloadAction action, double minlat, double minlon, double maxlat, double maxlon) {
+		Task task = new Task(action.dialog.newLayer.isSelected(), new BoundingBoxDownloader(minlat, minlon, maxlat, maxlon), action);
+		Main.worker.execute(task);
+	}
+
+	public JCheckBox getCheckBox() {
+	    return checkBox;
+    }
+
+	public String getPreferencesSuffix() {
+	    return "gps";
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java	(revision 321)
@@ -0,0 +1,71 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions.downloadtasks;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.io.IOException;
+
+import javax.swing.JCheckBox;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.DownloadAction;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.gui.PleaseWaitRunnable;
+import org.openstreetmap.josm.gui.download.DownloadDialog.DownloadTask;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.io.BoundingBoxDownloader;
+import org.xml.sax.SAXException;
+
+/**
+ * Open the download dialog and download the data.
+ * Run in the worker thread.
+ */
+public class DownloadOsmTask implements DownloadTask {
+
+	private static class Task extends PleaseWaitRunnable {
+		private BoundingBoxDownloader reader;
+		private DataSet dataSet;
+		private boolean newLayer;
+
+		public Task(boolean newLayer, BoundingBoxDownloader reader) {
+			super(tr("Downloading data"));
+			this.reader = reader;
+			this.newLayer = newLayer;
+		}
+
+		@Override public void realRun() throws IOException, SAXException {
+			dataSet = reader.parseOsm();
+		}
+
+		@Override protected void finish() {
+			if (dataSet == null)
+				return; // user cancelled download or error occoured
+			if (dataSet.allPrimitives().isEmpty())
+				errorMessage = tr("No data imported.");
+			OsmDataLayer layer = new OsmDataLayer(dataSet, tr("Data Layer"), null);
+			if (newLayer)
+				Main.main.addLayer(layer);
+			else
+				Main.main.editLayer().mergeFrom(layer);
+		}
+
+		@Override protected void cancel() {
+			if (reader != null)
+				reader.cancel();
+		}
+	}
+	private JCheckBox checkBox = new JCheckBox(tr("OpenStreetMap data"));
+
+	public void download(DownloadAction action, double minlat, double minlon, double maxlat, double maxlon) {
+		Task task = new Task(action.dialog.newLayer.isSelected(), new BoundingBoxDownloader(minlat, minlon, maxlat, maxlon));
+		Main.worker.execute(task);
+    }
+
+	public JCheckBox getCheckBox() {
+	    return checkBox;
+    }
+
+	public String getPreferencesSuffix() {
+	    return "osm";
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java	(revision 321)
@@ -0,0 +1,248 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions.mapmode;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.Cursor;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseEvent;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedList;
+
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.GroupAction;
+import org.openstreetmap.josm.command.AddCommand;
+import org.openstreetmap.josm.command.ChangeCommand;
+import org.openstreetmap.josm.command.Command;
+import org.openstreetmap.josm.command.SequenceCommand;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * This mode adds a new node to the dataset. The user clicks on a place to add
+ * and there is it. Nothing more, nothing less.
+ *
+ * Newly created nodes are selected. Shift modifier does not cancel the old
+ * selection as usual.
+ *
+ * @author imi
+ *
+ */
+public class AddNodeAction extends MapMode {
+
+	enum Mode {node, nodesegment, autonode}
+	private final Mode mode;
+
+	public static class AddNodeGroup extends GroupAction {
+		public AddNodeGroup(MapFrame mf) {
+			super(KeyEvent.VK_N,0);
+			putValue("help", "Action/AddNode");
+			actions.add(new AddNodeAction(mf,tr("Add node"), Mode.node, tr("Add a new node to the map")));
+			actions.add(new AddNodeAction(mf, tr("Add node into segment"), Mode.nodesegment,tr( "Add a node into an existing segment")));
+			actions.add(new AddNodeAction(mf, tr("Add node and connect"), Mode.autonode,tr( "Add a node and connect it to the selected node (with CTRL: add node into segment; with SHIFT: re-use existing node)")));
+			setCurrent(0);
+		}
+	}
+
+	public AddNodeAction(MapFrame mapFrame, String name, Mode mode, String desc) {
+		super(name, "node/"+mode, desc, mapFrame, getCursor());
+		this.mode = mode;
+		putValue("help", "Action/AddNode/"+Character.toUpperCase(mode.toString().charAt(0))+mode.toString().substring(1));
+	}
+
+	private static Cursor getCursor() {
+		try {
+	        return ImageProvider.getCursor("crosshair", null);
+        } catch (Exception e) {
+        }
+	    return Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR);
+    }
+
+	@Override public void enterMode() {
+		super.enterMode();
+		Main.map.mapView.addMouseListener(this);
+	}
+
+	@Override public void exitMode() {
+		super.exitMode();
+		Main.map.mapView.removeMouseListener(this);
+	}
+
+	/**
+	 * If user clicked with the left button, add a node at the current mouse
+	 * position.
+	 *
+	 * If in nodesegment mode, add the node to the line segment by splitting the
+	 * segment. The new created segment will be inserted in every way the segment
+	 * was part of.
+	 */
+	@Override public void mouseClicked(MouseEvent e) {
+		if (e.getButton() != MouseEvent.BUTTON1)
+			return;
+
+		Node n = new Node(Main.map.mapView.getLatLon(e.getX(), e.getY()));
+		if (n.coor.isOutSideWorld()) {
+			JOptionPane.showMessageDialog(Main.parent,tr("Cannot add a node outside of the world."));
+			return;
+		}
+
+		Command c = new AddCommand(n);
+		if (mode == Mode.nodesegment) {
+			Segment s = Main.map.mapView.getNearestSegment(e.getPoint());
+			if (s == null)
+				return;
+			
+			// see if another segment is also near
+			Segment other = Main.map.mapView.getNearestSegment(e.getPoint(), Collections.singleton(s));
+
+			if (other == null && (e.getModifiersEx() & MouseEvent.ALT_DOWN_MASK) == 0) {
+				// moving the new point to the perpendicular point
+				// FIXME: when two segments are split, should move the new point to the
+				// intersection point!
+				EastNorth A = s.from.eastNorth;
+				EastNorth B = s.to.eastNorth;
+				double ab = A.distance(B);
+				double nb = n.eastNorth.distance(B);
+				double na = n.eastNorth.distance(A);
+				double q = (nb-na+ab)/ab/2;
+				n.eastNorth = new EastNorth(B.east() + q*(A.east()-B.east()), B.north() + q*(A.north()-B.north()));
+				n.coor = Main.proj.eastNorth2latlon(n.eastNorth);
+			}
+
+			Collection<Command> cmds = new LinkedList<Command>();
+			cmds.add(c);
+			
+			// split the first segment
+			splitSegmentAtNode(s, n, cmds);
+			
+			// if a second segment was found, split that as well
+			if (other != null) splitSegmentAtNode(other, n, cmds);
+
+			c = new SequenceCommand(tr((other == null) ? 
+				"Add node into segment" : "Add common node into two segments"), cmds);
+		}
+
+		// Add a node and connecting segment.
+		if (mode == Mode.autonode) {
+
+			Segment insertInto = null;
+			Node reuseNode = null;
+			
+			// If CTRL is held, insert the node into a potentially existing segment
+			if ((e.getModifiersEx() & MouseEvent.CTRL_DOWN_MASK) != 0) {
+				insertInto = Main.map.mapView.getNearestSegment(e.getPoint());
+				if (insertInto == null)
+					return;
+			} 
+			// If ALT is held, instead of creating a new node, re-use an existing
+			// node (making this action identical to AddSegmentAction with the
+			// small difference that the node used will then be selected to allow
+			// continuation of the "add node and connect" stuff)
+			else if ((e.getModifiersEx() & MouseEvent.SHIFT_DOWN_MASK) != 0) {
+				OsmPrimitive clicked = Main.map.mapView.getNearest(e.getPoint(), false);
+				if (clicked == null || !(clicked instanceof Node))
+					return;
+				reuseNode = (Node) clicked;
+			}
+			
+			Collection<OsmPrimitive> selection = Main.ds.getSelected();
+			if (selection.size() == 1 && selection.iterator().next() instanceof Node) {
+				Node n1 = (Node)selection.iterator().next();
+				Collection<Command> cmds = new LinkedList<Command>();
+				
+				if (reuseNode != null) {
+					// in re-use node mode, n1 must not be identical to clicked node
+					if (n1 == reuseNode) return;
+					// replace newly created node with existing node
+					n = reuseNode;
+				} else {
+					// only add the node creation command if we're not re-using
+					cmds.add(c);
+				}
+				
+				Segment s = new Segment(n1, n);
+				
+				if (insertInto != null)
+					splitSegmentAtNode(insertInto, n, cmds);
+				
+				cmds.add(new AddCommand(s));			
+
+				Way way = getWayForNode(n1);
+				if (way != null) {
+					Way newWay = new Way(way);
+					if (way.segments.get(0).from == n1) {
+						Node tmp = s.from;
+						s.from = s.to;
+						s.to = tmp;
+						newWay.segments.add(0, s);
+					} else
+						newWay.segments.add(s);
+					cmds.add(new ChangeCommand(way, newWay));
+				}
+
+				c = new SequenceCommand(tr((insertInto == null) ? "Add node and connect" : "Add node into segment and connect"), cmds);
+			}	
+		}		
+	
+		Main.main.undoRedo.add(c);
+		Main.ds.setSelected(n);
+		Main.map.mapView.repaint();
+	}
+	
+	/**
+	 * @return If the node is part of exactly one way, return this. 
+	 * 	<code>null</code> otherwise.
+	 */
+	private Way getWayForNode(Node n) {
+		Way way = null;
+		for (Way w : Main.ds.ways) {
+			for (Segment s : w.segments) {
+				if (s.from == n || s.to == n) {
+					if (way != null)
+						return null;
+					if (s.from == s.to)
+						return null;
+					way = w;
+				}
+			}
+		}
+		return way;
+	}
+	
+	private void splitSegmentAtNode(Segment s, Node n, Collection<Command> cmds) {
+		Segment s1 = new Segment(s);
+		s1.to = n;
+		Segment s2 = new Segment(s.from, s.to);
+		s2.from = n;
+		if (s.keys != null)
+			s2.keys = new HashMap<String, String>(s.keys);
+
+		cmds.add(new ChangeCommand(s, s1));
+		cmds.add(new AddCommand(s2));
+
+		// Add the segment to every way
+		for (Way wold : Main.ds.ways) {
+			if (wold.segments.contains(s)) {
+				Way wnew = new Way(wold);
+				Collection<Segment> segs = new ArrayList<Segment>(wnew.segments);
+				wnew.segments.clear();
+				for (Segment waySeg : segs) {
+					wnew.segments.add(waySeg);
+					if (waySeg == s)
+						wnew.segments.add(s2);
+				}
+				cmds.add(new ChangeCommand(wold, wnew));
+			}
+		}
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/AddSegmentAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/AddSegmentAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/AddSegmentAction.java	(revision 321)
@@ -0,0 +1,176 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions.mapmode;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.Point;
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.util.Collection;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.command.AddCommand;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * The user can add a new segment between two nodes by pressing on the 
+ * starting node and dragging to the ending node. 
+ * 
+ * No segment can be created if there is already a segment containing
+ * both nodes.
+ * 
+ * @author imi
+ */
+public class AddSegmentAction extends MapMode implements MouseListener {
+
+	/**
+	 * The first node the user pressed the button onto.
+	 */
+	private Node first;
+	/**
+	 * The second node used if the user releases the button.
+	 */
+	private Node second;
+
+	/**
+	 * Whether the hint is currently drawn on screen.
+	 */
+	private boolean hintDrawn = false;
+	
+	/**
+	 * Create a new AddSegmentAction.
+	 * @param mapFrame The MapFrame this action belongs to.
+	 */
+	public AddSegmentAction(MapFrame mapFrame) {
+		super(tr("Add segment"), 
+				"addsegment", 
+				tr("Add a segment between two nodes."), 
+				KeyEvent.VK_G, 
+				mapFrame, 
+				ImageProvider.getCursor("normal", "segment"));
+	}
+
+	@Override public void enterMode() {
+		super.enterMode();
+		Main.map.mapView.addMouseListener(this);
+		Main.map.mapView.addMouseMotionListener(this);
+	}
+
+	@Override public void exitMode() {
+		super.exitMode();
+		Main.map.mapView.removeMouseListener(this);
+		Main.map.mapView.removeMouseMotionListener(this);
+		drawHint(false);
+	}
+
+	
+	@Override public void actionPerformed(ActionEvent e) {
+		super.actionPerformed(e);
+		makeSegment();
+	}
+
+	/**
+	 * If user clicked on a node, from the dragging with that node. 
+	 */
+	@Override public void mousePressed(MouseEvent e) {
+		if (e.getButton() != MouseEvent.BUTTON1)
+			return;
+
+		OsmPrimitive clicked = Main.map.mapView.getNearest(e.getPoint(), true);
+		if (clicked == null || !(clicked instanceof Node))
+			return;
+
+		drawHint(false);
+		first = second = (Node)clicked;
+	}
+
+	/**
+	 * Draw a hint which nodes will get connected if the user release
+	 * the mouse button now.
+	 */
+	@Override public void mouseDragged(MouseEvent e) {
+		if ((e.getModifiersEx() & MouseEvent.BUTTON1_DOWN_MASK) == 0)
+			return;
+
+		OsmPrimitive clicked = Main.map.mapView.getNearest(e.getPoint(), (e.getModifiersEx() & MouseEvent.ALT_DOWN_MASK) != 0);
+		if (clicked == null || clicked == second || !(clicked instanceof Node))
+			return;
+
+		drawHint(false);
+
+		second = (Node)clicked;
+		drawHint(true);
+	}
+
+	/**
+	 * If left button was released, try to create the segment.
+	 */
+	@Override public void mouseReleased(MouseEvent e) {
+		if (e.getButton() == MouseEvent.BUTTON1) {
+			makeSegment();
+			first = null; // release segment drawing
+		}
+	}
+
+	/**
+	 * Create the segment if first and second are different and there is
+	 * not already a segment.
+	 */
+	private void makeSegment() {
+		if (first == null || second == null) {
+			first = null;
+			second = null;
+			return;
+		}
+
+		drawHint(false);
+		
+		Node start = first;
+		Node end = second;
+		first = second;
+		second = null;
+		
+		if (start != end) {
+			// try to find a segment
+			for (Segment ls : Main.ds.segments)
+				if (!ls.deleted && ((start == ls.from && end == ls.to) || (end == ls.from && start == ls.to)))
+					return; // already a segment here - be happy, do nothing.
+
+			Segment ls = new Segment(start, end);
+			Main.main.undoRedo.add(new AddCommand(ls));
+			Collection<OsmPrimitive> sel = Main.ds.getSelected();
+			sel.add(ls);
+			Main.ds.setSelected(sel);
+		}
+
+		Main.map.mapView.repaint();
+	}
+
+	/**
+	 * Draw or remove the hint line, depending on the parameter.
+	 */
+	private void drawHint(boolean draw) {
+		if (draw == hintDrawn)
+			return;
+		if (first == null || second == null)
+			return;
+		if (second == first)
+			return;
+
+		Graphics g = Main.map.mapView.getGraphics();
+		g.setColor(Color.BLACK);
+		g.setXORMode(Color.WHITE);
+		Point firstDrawn = Main.map.mapView.getPoint(first.eastNorth);
+		Point secondDrawn = Main.map.mapView.getPoint(second.eastNorth);
+		g.drawLine(firstDrawn.x, firstDrawn.y, secondDrawn.x, secondDrawn.y);
+		hintDrawn = !hintDrawn;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java	(revision 321)
@@ -0,0 +1,220 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions.mapmode;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
+
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseEvent;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.LinkedList;
+
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.ReorderAction;
+import org.openstreetmap.josm.command.AddCommand;
+import org.openstreetmap.josm.command.ChangeCommand;
+import org.openstreetmap.josm.command.DeleteCommand;
+import org.openstreetmap.josm.data.SelectionChangedListener;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * Add a new way. The action is split into the first phase, where a new way get
+ * created or selected and the second, where this way is modified.
+ *
+ * Way creation mode:
+ * If there is a selection when the mode is entered, all segments in this
+ * selection form a new way. All non-segment objects are deselected. If there
+ * were ways selected, the user is asked whether to select all segments of these
+ * ways or not, except there is exactly one way selected, which enter the
+ * edit ways mode for this way immediatly.
+ * 
+ * If there is no selection on entering, and the user clicks on an segment, 
+ * the way editing starts the with a new way and this segment. If the user click
+ * on a way (not holding Alt down), then this way is edited in the way edit mode.
+ *
+ * Way editing mode:
+ * The user can click on subsequent segments. If the segment belonged to the way
+ * it get removed from the way. Elsewhere it get added to the way. JOSM try to add
+ * the segment in the correct position. This is done by searching for connections
+ * to the segment at its 'to' node which are also in the way. The segemnt is 
+ * inserted in the way as predecessor of the found segment (or at last segment, if
+ * nothing found). 
+ *
+ * @author imi
+ */
+public class AddWayAction extends MapMode implements SelectionChangedListener {
+	private Way way;
+
+	/**
+	 * Create a new AddWayAction.
+	 * @param mapFrame The MapFrame this action belongs to.
+	 * @param followMode The mode to go into when finished creating a way.
+	 */
+	public AddWayAction(MapFrame mapFrame) {
+		super(tr("Add Way"), "addway", tr("Add a new way to the data."), KeyEvent.VK_W, mapFrame, ImageProvider.getCursor("normal", "way"));
+		DataSet.listeners.add(this);
+	}
+
+	@Override public void enterMode() {
+		super.enterMode();
+		way = makeWay();
+		Main.ds.setSelected(way);
+		Main.map.mapView.addMouseListener(this);
+	}
+
+	@Override public void exitMode() {
+		super.exitMode();
+		way = null;
+		Main.map.mapView.removeMouseListener(this);
+	}
+
+	@Override public void mouseClicked(MouseEvent e) {
+		if (e.getButton() != MouseEvent.BUTTON1)
+			return;
+
+		Segment s = Main.map.mapView.getNearestSegment(e.getPoint());
+		if (s == null)
+			return;
+
+		// special case for initial selecting one way
+		if (way == null && (e.getModifiers() & MouseEvent.ALT_DOWN_MASK) == 0) {
+			Way w = Main.map.mapView.getNearestWay(e.getPoint());
+			if (w != null) {
+				way = w;
+				Main.ds.setSelected(way);
+				for (Segment seg : way.segments) {
+					if (seg.incomplete) {
+						JOptionPane.showMessageDialog(Main.parent,tr("Warning: This way is incomplete. Try to download it before adding segments."));
+						return;
+					}
+				}
+				return;
+			}
+		}
+
+		if (way != null && way.segments.contains(s)) {
+			Way copy = new Way(way);
+
+			copy.segments.remove(s);
+			if (copy.segments.isEmpty()) {
+				Main.main.undoRedo.add(new DeleteCommand(Arrays.asList(new OsmPrimitive[]{way})));
+				way = null;
+			} else
+				Main.main.undoRedo.add(new ChangeCommand(way, copy));
+		} else {
+			if (way == null) {
+				way = new Way();
+				way.segments.add(s);
+				Main.main.undoRedo.add(new AddCommand(way));
+			} else {
+				Way copy = new Way(way);
+				int i;
+				for (i = 0; i < way.segments.size(); ++i)
+					if (way.segments.get(i).from == s.to)
+						break;
+				copy.segments.add(i, s);
+				Main.main.undoRedo.add(new ChangeCommand(way, copy));
+			}
+		}
+		Main.ds.setSelected(way);
+	}
+
+	/**
+	 * Form a way, either out of the (one) selected way or by creating a way over the selected
+	 * line segments.
+	 */
+	private Way makeWay() {
+		Collection<OsmPrimitive> selection = Main.ds.getSelected();
+		if (selection.isEmpty())
+			return null;
+
+		if (selection.size() == 1 && selection.iterator().next() instanceof Way) {
+			Way way = (Way)selection.iterator().next();
+			for (Segment seg : way.segments) {
+				if (seg.incomplete) {
+					JOptionPane.showMessageDialog(Main.parent, tr("Warning: This way is incomplete. Try to download it before adding segments."));
+					break;
+				}
+			}
+			return way;
+		}
+
+		HashSet<Segment> segmentSet = new HashSet<Segment>();
+		int numberOfSelectedWays = 0;
+		for (OsmPrimitive osm : selection) {
+			if (osm instanceof Way)
+				numberOfSelectedWays++;
+			else if (osm instanceof Segment)
+				segmentSet.add((Segment)osm);
+		}
+
+		Way wayToAdd = null;
+		boolean reordered = false;
+		if (numberOfSelectedWays > 0) {
+			int answer = JOptionPane.showConfirmDialog(Main.parent,trn("{0} way has been selected.\nDo you wish to select all segments belonging to the way instead?","{0} ways have been selected.\nDo you wish to select all segments belonging to the ways instead?",numberOfSelectedWays,numberOfSelectedWays),tr("Add segments from ways"), JOptionPane.YES_NO_OPTION);
+			if (answer == JOptionPane.YES_OPTION) {
+				for (OsmPrimitive osm : selection)
+					if (osm instanceof Way)
+						segmentSet.addAll(((Way)osm).segments);
+			} else if (numberOfSelectedWays == 1) {
+				answer = JOptionPane.showConfirmDialog(Main.parent,tr("Do you want to add all other selected segments to the one selected way?"),tr("Add segments to way?"), JOptionPane.YES_NO_OPTION);
+				if (answer == JOptionPane.YES_OPTION) {
+					for (OsmPrimitive osm : selection) {
+						if (osm instanceof Way) {
+							wayToAdd = (Way)osm;
+							answer = JOptionPane.showConfirmDialog(Main.parent,tr("Reorder all line segments?"), tr("Reorder?"), JOptionPane.YES_NO_CANCEL_OPTION);
+							if (answer == JOptionPane.CANCEL_OPTION)
+								return wayToAdd;
+							if (answer == JOptionPane.YES_OPTION) {
+								segmentSet.addAll(wayToAdd.segments);
+								reordered = true;
+							} else
+								segmentSet.removeAll(wayToAdd.segments);
+							break;
+						}
+					}
+				}
+			}
+		}
+
+		if (segmentSet.isEmpty())
+			return null;
+
+		LinkedList<Segment> rawSegments = new LinkedList<Segment>(segmentSet);
+		LinkedList<Segment> sortedSegments = ReorderAction.sortSegments(rawSegments, true);
+
+		if (wayToAdd != null) {
+			Way w = new Way(wayToAdd);
+			if (reordered)
+				w.segments.clear();
+			w.segments.addAll(sortedSegments);
+			Main.main.undoRedo.add(new ChangeCommand(wayToAdd, w));
+			return wayToAdd;
+		}
+
+		if (JOptionPane.YES_OPTION != JOptionPane.showConfirmDialog(Main.parent,trn("Create a new way out of {0} segment?","Create a new way out of {0} segments?",sortedSegments.size(),sortedSegments.size()), tr("Create new way"), JOptionPane.YES_NO_OPTION))
+			return null;
+
+		Way w = new Way();
+		w.segments.addAll(sortedSegments);
+		Main.main.undoRedo.add(new AddCommand(w));
+		return w;
+	}
+
+	public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
+		if (newSelection.size() == 1) {
+			OsmPrimitive osm = newSelection.iterator().next();
+			way = osm instanceof Way ? (Way)osm : null;
+		} else
+			way = null;
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java	(revision 321)
@@ -0,0 +1,218 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions.mapmode;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseEvent;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.Map.Entry;
+
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.command.ChangeCommand;
+import org.openstreetmap.josm.command.Command;
+import org.openstreetmap.josm.command.DeleteCommand;
+import org.openstreetmap.josm.command.SequenceCommand;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.osm.visitor.CollectBackReferencesVisitor;
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * An action that enables the user to delete nodes and other objects.
+ *
+ * The user can click on an object, which get deleted if possible. When Ctrl is 
+ * pressed when releasing the button, the objects and all its references are 
+ * deleted. The exact definition of "all its references" are in 
+ * @see #deleteWithReferences(OsmPrimitive)
+ *
+ * Pressing Alt will select the way instead of a segment, as usual.
+ * 
+ * If the user did not press Ctrl and the object has any references, the user
+ * is informed and nothing is deleted.
+ *
+ * If the user enters the mapmode and any object is selected, all selected
+ * objects that can be deleted will.
+ * 
+ * @author imi
+ */
+public class DeleteAction extends MapMode {
+
+	/**
+	 * Construct a new DeleteAction. Mnemonic is the delete - key.
+	 * @param mapFrame The frame this action belongs to.
+	 */
+	public DeleteAction(MapFrame mapFrame) {
+		super(tr("Delete"), 
+				"delete", 
+				tr("Delete nodes, streets or segments."), 
+				KeyEvent.VK_D, 
+				mapFrame, 
+				ImageProvider.getCursor("normal", "delete"));
+	}
+
+	@Override public void enterMode() {
+		super.enterMode();
+		Main.map.mapView.addMouseListener(this);
+	}
+
+	@Override public void exitMode() {
+		super.exitMode();
+		Main.map.mapView.removeMouseListener(this);
+	}
+
+	
+	@Override public void actionPerformed(ActionEvent e) {
+		super.actionPerformed(e);
+		boolean ctrl = (e.getModifiers() & ActionEvent.CTRL_MASK) != 0;
+		if (ctrl)
+			deleteWithReferences(Main.ds.getSelected());
+		else
+			delete(Main.ds.getSelected(), false, false);
+		Main.map.repaint();
+	}
+
+	/**
+	 * If user clicked with the left button, delete the nearest object.
+	 * position.
+	 */
+	@Override public void mouseClicked(MouseEvent e) {
+		if (e.getButton() != MouseEvent.BUTTON1)
+			return;
+		
+		OsmPrimitive sel = Main.map.mapView.getNearest(e.getPoint(), (e.getModifiersEx() & MouseEvent.ALT_DOWN_MASK) != 0);
+		if (sel == null)
+			return;
+
+		if ((e.getModifiersEx() & MouseEvent.CTRL_DOWN_MASK) != 0)
+			deleteWithReferences(Collections.singleton(sel));
+		else
+			delete(Collections.singleton(sel), true, true);
+
+		Main.map.mapView.repaint();
+	}
+
+	/**
+	 * Delete the primitives and everything they references.
+	 * 
+	 * If a node is deleted, the node and all segments, ways and areas
+	 * the node is part of are deleted as well.
+	 * 
+	 * If a segment is deleted, all ways the segment is part of 
+	 * are deleted as well. No nodes are deleted.
+	 * 
+	 * If a way is deleted, only the way and no segments or nodes are 
+	 * deleted.
+	 * 
+	 * If an area is deleted, only the area gets deleted.
+	 * 
+	 * @param selection The list of all object to be deleted.
+	 */
+	private void deleteWithReferences(Collection<OsmPrimitive> selection) {
+		CollectBackReferencesVisitor v = new CollectBackReferencesVisitor(Main.ds);
+		for (OsmPrimitive osm : selection)
+			osm.visit(v);
+		v.data.addAll(selection);
+		if (!v.data.isEmpty())
+			Main.main.undoRedo.add(new DeleteCommand(v.data));
+	}
+
+	/**
+	 * Try to delete all given primitives. If a primitive is
+	 * used somewhere and that "somewhere" is not going to be deleted,
+	 * inform the user and do not delete.
+	 * 
+	 * If deleting a node which is part of exactly two segments, and both segments
+	 * have no conflicting keys, join them and remove the node.
+	 * If the two segments are part of the same way, remove the deleted segment
+	 * from the way.
+	 * 
+	 * @param selection The objects to delete.
+	 * @param msgBox Whether a message box for errors should be shown
+	 */
+	private void delete(Collection<OsmPrimitive> selection, boolean msgBox, boolean joinIfPossible) {
+		Collection<OsmPrimitive> del = new HashSet<OsmPrimitive>();
+		for (OsmPrimitive osm : selection) {
+			CollectBackReferencesVisitor v = new CollectBackReferencesVisitor(Main.ds);
+			osm.visit(v);
+			if (!selection.containsAll(v.data)) {
+				if (osm instanceof Node && joinIfPossible) {
+					String reason = deleteNodeAndJoinSegment((Node)osm);
+					if (reason != null && msgBox) {
+						JOptionPane.showMessageDialog(Main.parent,tr("Cannot delete node.")+" "+reason);
+						return;
+					}
+				} else if (msgBox) {
+					JOptionPane.showMessageDialog(Main.parent, tr("This object is in use."));
+					return;
+				}
+			} else {
+				del.addAll(v.data);
+				del.add(osm);
+			}
+		}
+		if (!del.isEmpty())
+			Main.main.undoRedo.add(new DeleteCommand(del));
+	}
+
+	private String deleteNodeAndJoinSegment(Node n) {
+		ArrayList<Segment> segs = new ArrayList<Segment>(2);
+		for (Segment s : Main.ds.segments) {
+			if (!s.deleted && (s.from == n || s.to == n)) {
+				if (segs.size() > 1)
+					return tr("Used by more than two segments.");
+				segs.add(s);
+			}
+		}
+		if (segs.size() != 2)
+			return tr("Used by only one segment.");
+		Segment seg1 = segs.get(0);
+		Segment seg2 = segs.get(1);
+		if (seg1.from == seg2.to) {
+			Segment s = seg1;
+			seg1 = seg2;
+			seg2 = s;
+		}
+		if (seg1.from == seg2.from || seg1.to == seg2.to)
+			return tr("Wrong direction of segments.");
+		for (Entry<String, String> e : seg1.entrySet())
+			if (seg2.keySet().contains(e.getKey()) && !seg2.get(e.getKey()).equals(e.getValue()))
+				return tr("Conflicting keys");
+		ArrayList<Way> ways = new ArrayList<Way>(2);
+		for (Way w : Main.ds.ways) {
+			if (w.deleted)
+				continue;
+			if ((w.segments.contains(seg1) && !w.segments.contains(seg2)) || (w.segments.contains(seg2) && !w.segments.contains(seg1)))
+				return tr("Segments are part of different ways.");
+			if (w.segments.contains(seg1) && w.segments.contains(seg2))
+				ways.add(w);
+		}
+		Segment s = new Segment(seg1);
+		s.to = seg2.to;
+		if (s.keys == null)
+			s.keys = seg2.keys;
+		else if (seg2.keys != null)
+			s.keys.putAll(seg2.keys);
+		Collection<Command> cmds = new LinkedList<Command>();
+		for (Way w : ways) {
+			Way copy = new Way(w);
+			copy.segments.remove(seg2);
+			cmds.add(new ChangeCommand(w, copy));
+		}
+		cmds.add(new ChangeCommand(seg1, s));
+		cmds.add(new DeleteCommand(Arrays.asList(new OsmPrimitive[]{n, seg2})));
+		Main.main.undoRedo.add(new SequenceCommand(tr("Delete Node"), cmds));
+		return null;
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/MapMode.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/MapMode.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/MapMode.java	(revision 321)
@@ -0,0 +1,72 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions.mapmode;
+
+import java.awt.Cursor;
+import java.awt.event.ActionEvent;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.awt.event.MouseMotionListener;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.JosmAction;
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * A class implementing MapMode is able to be selected as an mode for map editing.
+ * As example scrolling the map is a MapMode, connecting Nodes to new Segments
+ * is another.
+ * 
+ * MapModes should register/deregister all necessary listener on the map's view
+ * control. 
+ */
+abstract public class MapMode extends JosmAction implements MouseListener, MouseMotionListener {
+	private final Cursor cursor;
+	private Cursor oldCursor;
+
+	/**
+	 * Constructor for mapmodes without an menu
+	 */
+	public MapMode(String name, String iconName, String tooltip, int keystroke, MapFrame mapFrame, Cursor cursor) {
+		super(name, "mapmode/"+iconName, tooltip, keystroke, 0, false);
+		this.cursor = cursor;
+		putValue("active", false);
+	}
+
+	/**
+	 * Constructor for mapmodes with an menu (no shortcut will be registered)
+	 */
+	public MapMode(String name, String iconName, String tooltip, MapFrame mapFrame, Cursor cursor) {
+		putValue(NAME, name);
+		putValue(SMALL_ICON, ImageProvider.get("mapmode", iconName));
+		putValue(SHORT_DESCRIPTION, tooltip);
+		this.cursor = cursor;
+	}
+
+	public void enterMode() {
+		putValue("active", true);
+		oldCursor = Main.map.mapView.getCursor();
+		Main.map.mapView.setCursor(cursor);
+		
+	}
+	public void exitMode() {
+		putValue("active", false);
+		Main.map.mapView.setCursor(oldCursor);
+	}
+
+	/**
+	 * Call selectMapMode(this) on the parent mapFrame.
+	 */
+	public void actionPerformed(ActionEvent e) {
+		if (Main.map != null)
+			Main.map.selectMapMode(this);
+	}
+
+	public void mouseReleased(MouseEvent e) {}
+	public void mouseExited(MouseEvent e) {}
+	public void mousePressed(MouseEvent e) {}
+	public void mouseClicked(MouseEvent e) {}
+	public void mouseEntered(MouseEvent e) {}
+	public void mouseMoved(MouseEvent e) {}
+	public void mouseDragged(MouseEvent e) {}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/MoveAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/MoveAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/MoveAction.java	(revision 321)
@@ -0,0 +1,200 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions.mapmode;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.Cursor;
+import java.awt.Point;
+import java.awt.Rectangle;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseEvent;
+import java.util.Collection;
+
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.GroupAction;
+import org.openstreetmap.josm.command.Command;
+import org.openstreetmap.josm.command.MoveCommand;
+import org.openstreetmap.josm.command.RotateCommand;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.visitor.AllNodesVisitor;
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.gui.SelectionManager;
+import org.openstreetmap.josm.gui.SelectionManager.SelectionEnded;
+import org.openstreetmap.josm.tools.ImageProvider;
+/**
+ * Move is an action that can move all kind of OsmPrimitives (except Keys for now).
+ *
+ * If an selected object is under the mouse when dragging, move all selected objects.
+ * If an unselected object is under the mouse when dragging, it becomes selected
+ * and will be moved.
+ * If no object is under the mouse, move all selected objects (if any)
+ * 
+ * @author imi
+ */
+public class MoveAction extends MapMode implements SelectionEnded {
+	
+	enum Mode {move, rotate}
+	private final Mode mode;
+
+	public static class MoveGroup extends GroupAction {
+		public MoveGroup(MapFrame mf) {
+			super(KeyEvent.VK_M,0);
+			putValue("help", "Action/Move");
+			actions.add(new MoveAction(mf, tr("Move"), Mode.move, tr("Move around objects that are under the mouse or selected.")));
+			actions.add(new MoveAction(mf, tr("Rotate"), Mode.rotate, tr("Rotate selected nodes around centre")));
+			setCurrent(0);
+		}
+	}
+	
+	/**
+	 * The old cursor before the user pressed the mouse button.
+	 */
+	private Cursor oldCursor;
+	/**
+	 * The position of the mouse before the user moves a node.
+	 */
+	private Point mousePos;
+	private SelectionManager selectionManager;
+	private boolean selectionMode = false;
+
+	/**
+	 * Create a new MoveAction
+	 * @param mapFrame The MapFrame, this action belongs to.
+	 */
+	public MoveAction(MapFrame mapFrame, String name, Mode mode, String desc) {
+		super(name, "move/"+mode, desc, mapFrame, getCursor());
+		this.mode = mode;
+		putValue("help", "Action/Move/"+Character.toUpperCase(mode.toString().charAt(0))+mode.toString().substring(1));
+		selectionManager = new SelectionManager(this, false, mapFrame.mapView);
+	}
+
+	private static Cursor getCursor() {
+		try {
+	        return ImageProvider.getCursor("crosshair", null);
+        } catch (Exception e) {
+        }
+	    return Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR);
+    }
+	
+	@Override public void enterMode() {
+		super.enterMode();
+		Main.map.mapView.addMouseListener(this);
+		Main.map.mapView.addMouseMotionListener(this);
+	}
+
+	@Override public void exitMode() {
+		super.exitMode();
+		Main.map.mapView.removeMouseListener(this);
+		Main.map.mapView.removeMouseMotionListener(this);
+	}
+
+	/**
+	 * If the left mouse button is pressed, move all currently selected
+	 * objects (if one of them is under the mouse) or the current one under the
+	 * mouse (which will become selected).
+	 */
+	@Override public void mouseDragged(MouseEvent e) {
+		if ((e.getModifiersEx() & MouseEvent.BUTTON1_DOWN_MASK) == 0)
+			return;
+
+		if (selectionMode)
+			return;
+
+		if (mousePos == null)
+			mousePos = e.getPoint();
+		
+		EastNorth mouseEN = Main.map.mapView.getEastNorth(e.getX(), e.getY());
+		EastNorth mouseStartEN = Main.map.mapView.getEastNorth(mousePos.x, mousePos.y);
+		double dx = mouseEN.east() - mouseStartEN.east();
+		double dy = mouseEN.north() - mouseStartEN.north();
+		if (dx == 0 && dy == 0)
+			return;
+
+		Collection<OsmPrimitive> selection = Main.ds.getSelected();
+		Collection<Node> affectedNodes = AllNodesVisitor.getAllNodes(selection);
+		
+		// when rotating, having only one node makes no sense - quit silently
+		if (mode == Mode.rotate && affectedNodes.size() < 2) 
+			return;
+		
+
+		// check if any coordinate would be outside the world
+		for (OsmPrimitive osm : affectedNodes) {
+			if (osm instanceof Node && ((Node)osm).coor.isOutSideWorld()) {
+				JOptionPane.showMessageDialog(Main.parent,tr("Cannot move objects outside of the world."));
+				return;
+			}
+		}
+		Command c = !Main.main.undoRedo.commands.isEmpty() ? Main.main.undoRedo.commands.getLast() : null;
+
+		if (mode == Mode.move) {
+			if (c instanceof MoveCommand && affectedNodes.equals(((MoveCommand)c).objects))
+				((MoveCommand)c).moveAgain(dx,dy);
+			else
+				Main.main.undoRedo.add(new MoveCommand(selection, dx, dy));
+		} else if (mode == Mode.rotate) {
+			if (c instanceof RotateCommand && affectedNodes.equals(((RotateCommand)c).objects))
+				((RotateCommand)c).rotateAgain(mouseStartEN, mouseEN);
+			else
+				Main.main.undoRedo.add(new RotateCommand(selection, mouseStartEN, mouseEN));
+		}
+
+		Main.map.mapView.repaint();
+		mousePos = e.getPoint();
+	}
+
+	/**
+	 * Look, whether any object is selected. If not, select the nearest node.
+	 * If there are no nodes in the dataset, do nothing.
+	 * 
+	 * If the user did not press the left mouse button, do nothing.
+	 * 
+	 * Also remember the starting position of the movement and change the mouse 
+	 * cursor to movement.
+	 */
+	@Override public void mousePressed(MouseEvent e) {
+		if (e.getButton() != MouseEvent.BUTTON1)
+			return;
+
+		Collection<OsmPrimitive> sel = Main.ds.getSelected();
+		OsmPrimitive osm = Main.map.mapView.getNearest(e.getPoint(), (e.getModifiersEx() & MouseEvent.ALT_DOWN_MASK) != 0);
+		if (osm != null) {
+			if (!sel.contains(osm))
+				Main.ds.setSelected(osm);
+			oldCursor = Main.map.mapView.getCursor();
+			
+			if (mode == Mode.move) {
+				Main.map.mapView.setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
+			} else {
+				Main.map.mapView.setCursor(ImageProvider.getCursor("rotate", null));
+			}
+		} else {
+			selectionMode = true;
+			selectionManager.register(Main.map.mapView);
+		}
+
+		Main.map.mapView.repaint();
+
+		mousePos = e.getPoint();
+	}
+
+	/**
+	 * Restore the old mouse cursor.
+	 */
+	@Override public void mouseReleased(MouseEvent e) {
+		if (selectionMode) {
+			selectionManager.unregister(Main.map.mapView);
+			selectionMode = false;
+		} else
+			Main.map.mapView.setCursor(oldCursor);
+	}
+
+
+	public void selectionEnded(Rectangle r, boolean alt, boolean shift, boolean ctrl) {
+		SelectionAction.selectEverythingInRectangle(selectionManager, r, alt, shift, ctrl);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java	(revision 321)
@@ -0,0 +1,238 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions.mapmode;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.Rectangle;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseEvent;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.Map;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.GroupAction;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.gui.SelectionManager;
+import org.openstreetmap.josm.gui.SelectionManager.SelectionEnded;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * This MapMode enables the user to easy make a selection of different objects.
+ *
+ * The selected objects are drawn in a different style.
+ *
+ * Holding and dragging the left mouse button draws an selection rectangle.
+ * When releasing the left mouse button, all objects within the rectangle get
+ * selected.
+ *
+ * When releasing the left mouse button while the right mouse button pressed,
+ * nothing happens (the selection rectangle will be cleared, however).
+ *
+ * When releasing the mouse button and one of the following keys was hold:
+ *
+ * If Alt key was hold, select all objects that are touched by the
+ * selection rectangle. If the Alt key was not hold, select only those objects
+ * completly within (e.g. for ways mean: only if all nodes of the way are
+ * within).
+ *
+ * If Shift key was hold, the objects are added to the current selection. If
+ * Shift key wasn't hold, the current selection get replaced.
+ *
+ * If Ctrl key was hold, remove all objects under the current rectangle from
+ * the active selection (if there were any). Nothing is added to the current
+ * selection.
+ *
+ * Alt can be combined with Ctrl or Shift. Ctrl and Shift cannot be combined.
+ * If both are pressed, nothing happens when releasing the mouse button.
+ *
+ * The user can also only click on the map. All total movements of 2 or less
+ * pixel are considered "only click". If that happens, the nearest Node will
+ * be selected if there is any within 10 pixel range. If there is no Node within
+ * 10 pixel, the nearest Segment (or Street, if user hold down the Alt-Key)
+ * within 10 pixel range is selected. If there is no Segment within 10 pixel
+ * and the user clicked in or 10 pixel away from an area, this area is selected.
+ * If there is even no area, nothing is selected. Shift and Ctrl key applies to
+ * this as usual. For more, @see MapView#getNearest(Point, boolean)
+ *
+ * @author imi
+ */
+public class SelectionAction extends MapMode implements SelectionEnded {
+
+	enum Mode {select, straight}
+	private final Mode mode;
+
+	public static class Group extends GroupAction {
+		public Group(MapFrame mf) {
+			super(KeyEvent.VK_S,0);
+			putValue("help", "Action/Selection");
+			actions.add(new SelectionAction(mf, tr("Selection"), Mode.select, tr("Select objects by dragging or clicking.")));
+			actions.add(new SelectionAction(mf, tr("Straight line"), Mode.straight, tr("Select objects in a straight line.")));
+			setCurrent(0);
+		}
+	}
+
+
+	/**
+	 * The SelectionManager that manages the selection rectangle.
+	 */
+	private SelectionManager selectionManager;
+
+	private Node straightStart = null;
+	private Node lastEnd = null;
+	private Collection<OsmPrimitive> oldSelection = null;
+
+	//TODO: Implement reverse references into data objects and remove this
+	private final Map<Node, Collection<Segment>> reverseSegmentMap = new HashMap<Node, Collection<Segment>>();
+
+	/**
+	 * Create a new SelectionAction in the given frame.
+	 * @param mapFrame The frame this action belongs to
+	 */
+	public SelectionAction(MapFrame mapFrame, String name, Mode mode, String desc) {
+		super(name, "selection/"+mode, desc, mapFrame, ImageProvider.getCursor("normal", "selection"));
+		this.mode = mode;
+		putValue("help", "Action/Selection/"+Character.toUpperCase(mode.toString().charAt(0))+mode.toString().substring(1));
+		this.selectionManager = new SelectionManager(this, false, mapFrame.mapView);
+	}
+
+	@Override public void enterMode() {
+		super.enterMode();
+		if (mode == Mode.select)
+			selectionManager.register(Main.map.mapView);
+		else {
+			Main.map.mapView.addMouseMotionListener(this);
+			Main.map.mapView.addMouseListener(this);
+			for (Segment s : Main.ds.segments) {
+				addBackReference(s.from, s);
+				addBackReference(s.to, s);
+			}
+		}
+	}
+
+	private void addBackReference(Node n, Segment s) {
+		Collection<Segment> c = reverseSegmentMap.get(n);
+		if (c == null) {
+			c = new HashSet<Segment>();
+			reverseSegmentMap.put(n, c);
+		}
+		c.add(s);
+	}
+
+	@Override public void exitMode() {
+		super.exitMode();
+		if (mode == Mode.select)
+			selectionManager.unregister(Main.map.mapView);
+		else {
+			Main.map.mapView.removeMouseMotionListener(this);
+			Main.map.mapView.removeMouseListener(this);
+			reverseSegmentMap.clear();
+		}
+	}
+
+
+	/**
+	 * Check the state of the keys and buttons and set the selection accordingly.
+	 */
+	public void selectionEnded(Rectangle r, boolean alt, boolean shift, boolean ctrl) {
+		selectEverythingInRectangle(selectionManager, r, alt, shift, ctrl);
+	}
+
+	public static void selectEverythingInRectangle(SelectionManager selectionManager, Rectangle r, boolean alt, boolean shift, boolean ctrl) {
+	    if (shift && ctrl)
+			return; // not allowed together
+
+		Collection<OsmPrimitive> curSel;
+		if (!ctrl && !shift)
+			curSel = new LinkedList<OsmPrimitive>(); // new selection will replace the old.
+		else
+			curSel = Main.ds.getSelected();
+
+		Collection<OsmPrimitive> selectionList = selectionManager.getObjectsInRectangle(r,alt);
+		for (OsmPrimitive osm : selectionList)
+			if (ctrl)
+				curSel.remove(osm);
+			else
+				curSel.add(osm);
+		Main.ds.setSelected(curSel);
+		Main.map.mapView.repaint();
+    }
+
+	@Override public void mouseDragged(MouseEvent e) {
+		Node old = lastEnd;
+		lastEnd = Main.map.mapView.getNearestNode(e.getPoint());
+		if (straightStart == null)
+			straightStart = lastEnd;
+		if (straightStart != null && lastEnd != null && straightStart != lastEnd && old != lastEnd) {
+			Collection<OsmPrimitive> path = new HashSet<OsmPrimitive>();
+			Collection<OsmPrimitive> sel = new HashSet<OsmPrimitive>();
+			path.add(straightStart);
+			calculateShortestPath(path, straightStart, lastEnd);
+			if ((e.getModifiers() & MouseEvent.CTRL_MASK) != 0) {
+				sel.addAll(oldSelection);
+				sel.removeAll(path);
+			} else if ((e.getModifiers() & MouseEvent.SHIFT_MASK) != 0) {
+				sel = path;
+				sel.addAll(oldSelection);
+			} else
+				sel = path;
+			Main.ds.setSelected(sel);
+		}
+	}
+
+	@Override public void mousePressed(MouseEvent e) {
+		straightStart = Main.map.mapView.getNearestNode(e.getPoint());
+		lastEnd = null;
+		oldSelection = Main.ds.getSelected();
+	}
+
+	@Override public void mouseReleased(MouseEvent e) {
+		straightStart = null;
+		lastEnd = null;
+		oldSelection = null;
+	}
+
+	/**
+	 * Get the shortest path by stepping through the node with a common segment with start
+	 * and nearest to the end (greedy algorithm).
+	 */
+	private void calculateShortestPath(Collection<OsmPrimitive> path, Node start, Node end) {
+		for (Node pivot = start; pivot != null;)
+			pivot = addNearest(path, pivot, end);
+	}
+
+	private Node addNearest(Collection<OsmPrimitive> path, Node start, Node end) {
+		Collection<Segment> c = reverseSegmentMap.get(start);
+		if (c == null)
+			return null; // start may be a waypoint without segments
+		double min = Double.MAX_VALUE;
+		Node next = null;
+		Segment seg = null;
+		for (Segment s : c) {
+			Node other = s.from == start ? s.to : s.from;
+			if (other == end) {
+				next = other;
+				seg = s;
+				min = 0;
+				break;
+			}
+			double distance = other.eastNorth.distance(end.eastNorth);
+			if (distance < min) {
+				min = distance;
+				next = other;
+				seg = s;
+			}
+		}
+		if (min < start.eastNorth.distance(end.eastNorth) && next != null) {
+			path.add(next);
+			path.add(seg);
+			return next;
+		}
+		return null;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/ZoomAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/ZoomAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/ZoomAction.java	(revision 321)
@@ -0,0 +1,72 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions.mapmode;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.Rectangle;
+import java.awt.event.KeyEvent;
+
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.SelectionManager;
+import org.openstreetmap.josm.gui.SelectionManager.SelectionEnded;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * Enable the zoom mode within the MapFrame. 
+ * 
+ * Holding down the left mouse button select a rectangle with the same aspect 
+ * ratio than the current map view.
+ * Holding down left and right let the user move the former selected rectangle.
+ * Releasing the left button zoom to the selection.
+ * 
+ * Rectangle selections with either height or width smaller than 3 pixels 
+ * are ignored.
+ * 
+ * @author imi
+ */
+public class ZoomAction extends MapMode implements SelectionEnded {
+
+	/**
+	 * Shortcut to the mapview.
+	 */
+	private final MapView mv;
+	/**
+	 * Manager that manages the selection rectangle with the aspect ratio of the
+	 * MapView.
+	 */
+	private final SelectionManager selectionManager;
+
+
+	/**
+	 * Construct a ZoomAction without a label.
+	 * @param mapFrame The MapFrame, whose zoom mode should be enabled.
+	 */
+	public ZoomAction(MapFrame mapFrame) {
+		super(tr("Zoom"), "zoom", tr("Zoom in by dragging. (Ctrl+up,left,down,right,',','.')"), KeyEvent.VK_Z, mapFrame, ImageProvider.getCursor("normal", "zoom"));
+		mv = mapFrame.mapView;
+		selectionManager = new SelectionManager(this, true, mv);
+	}
+
+	/**
+	 * Zoom to the rectangle on the map.
+	 */
+	public void selectionEnded(Rectangle r, boolean alt, boolean shift, boolean ctrl) {
+		if (r.width >= 3 && r.height >= 3) {
+			double scale = mv.getScale() * r.getWidth()/mv.getWidth();
+			EastNorth newCenter = mv.getEastNorth(r.x+r.width/2, r.y+r.height/2);
+			mv.zoomTo(newCenter, scale);
+		}
+	}
+
+	@Override public void enterMode() {
+		super.enterMode();
+		selectionManager.register(mv);
+	}
+
+	@Override public void exitMode() {
+		super.exitMode();
+		selectionManager.unregister(mv);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/search/SearchAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/search/SearchAction.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/search/SearchAction.java	(revision 321)
@@ -0,0 +1,102 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions.search;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+import java.util.Collection;
+
+import javax.swing.ButtonGroup;
+import javax.swing.JCheckBox;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JRadioButton;
+import javax.swing.JTextField;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.JosmAction;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.tools.GBC;
+
+public class SearchAction extends JosmAction {
+	public static enum SearchMode {replace, add, remove}
+
+    private String lastSearch = "";
+
+    public SearchAction() {
+    	super(tr("Search"), "dialogs/search", tr("Search for objects."), KeyEvent.VK_F, KeyEvent.CTRL_DOWN_MASK, true);
+    }
+
+    public void actionPerformed(ActionEvent e) {
+    	if (Main.map == null) {
+    		JOptionPane.showMessageDialog(Main.parent, tr("No data loaded."));
+    		return;
+    	}
+    	JLabel label = new JLabel(tr("Please enter a search string."));
+    	final JTextField input = new JTextField(lastSearch);
+    	input.setToolTipText(tr("<html>Fulltext search.<ul>" +
+    			"<li><code>Baker Street</code>  - 'Baker' and 'Street' in any key or name.</li>" +
+    			"<li><code>\"Baker Street\"</code>  - 'Baker Street' in any key or name.</li>" +
+    			"<li><code>name:Bak</code>  - 'Bak' anywhere in the name.</li>" +
+    			"<li><code>-name:Bak</code>  - not 'Bak' in the name.</li>" +
+    			"<li><code>foot:</code>  - key=foot set to any value." +
+    	"</ul></html>"));
+    
+    	JRadioButton replace = new JRadioButton(tr("replace selection"), true);
+    	JRadioButton add = new JRadioButton(tr("add to selection"), false);
+    	JRadioButton remove = new JRadioButton(tr("remove from selection"), false);
+    	ButtonGroup bg = new ButtonGroup();
+    	bg.add(replace);
+    	bg.add(add);
+    	bg.add(remove);
+    	
+    	JCheckBox caseSensitive = new JCheckBox(tr("case sensitive"), false);
+    
+    	JPanel p = new JPanel(new GridBagLayout());
+    	p.add(label, GBC.eop());
+    	p.add(input, GBC.eop().fill(GBC.HORIZONTAL));
+    	p.add(replace, GBC.eol());
+    	p.add(add, GBC.eol());
+    	p.add(remove, GBC.eop());
+    	p.add(caseSensitive, GBC.eol());
+    	JOptionPane pane = new JOptionPane(p, JOptionPane.INFORMATION_MESSAGE, JOptionPane.OK_CANCEL_OPTION, null){
+    		@Override public void selectInitialValue() {
+    			input.requestFocusInWindow();
+    			input.selectAll();
+    		}
+    	};
+    	pane.createDialog(Main.parent,tr("Search")).setVisible(true);
+    	if (!Integer.valueOf(JOptionPane.OK_OPTION).equals(pane.getValue()))
+    		return;
+    	lastSearch = input.getText();
+    	SearchAction.SearchMode mode = replace.isSelected() ? SearchAction.SearchMode.replace : (add.isSelected() ? SearchAction.SearchMode.add : SearchAction.SearchMode.remove);
+    	search(lastSearch, mode, caseSensitive.isSelected());
+    }
+
+	public static void search(String search, SearchMode mode, boolean caseSensitive) {
+    	if (search.startsWith("http://") || search.startsWith("ftp://") || search.startsWith("https://") || search.startsWith("file:/")) {
+    		SelectionWebsiteLoader loader = new SelectionWebsiteLoader(search, mode);
+    		if (loader.url != null) {
+    			Main.worker.execute(loader);
+    			return;
+    		}
+    	}
+    	Collection<OsmPrimitive> sel = Main.ds.getSelected();
+    	SearchCompiler.Match matcher = SearchCompiler.compile(search, caseSensitive);
+    	for (OsmPrimitive osm : Main.ds.allNonDeletedPrimitives()) {
+    		if (mode == SearchMode.replace) {
+    			if (matcher.match(osm))
+    				sel.add(osm);
+    			else
+    				sel.remove(osm);
+    		} else if (mode == SearchMode.add && !osm.selected && matcher.match(osm))
+    			sel.add(osm);
+    		else if (mode == SearchMode.remove && osm.selected && matcher.match(osm))
+    			sel.remove(osm);
+    	}
+    	Main.ds.setSelected(sel);
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/actions/search/SearchCompiler.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/search/SearchCompiler.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/search/SearchCompiler.java	(revision 321)
@@ -0,0 +1,299 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions.search;
+
+import java.io.IOException;
+import java.io.PushbackReader;
+import java.io.StringReader;
+import java.util.Map.Entry;
+
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+
+/**
+ * Implements a google-like search.
+ * @author Imi
+ */
+public class SearchCompiler {
+
+	boolean caseSensitive = false;
+	
+	abstract public static class Match {
+		abstract public boolean match(OsmPrimitive osm);
+	}
+
+	private static class Always extends Match {
+		@Override public boolean match(OsmPrimitive osm) {
+			return true;
+		}
+	}
+
+	private static class Not extends Match {
+		private final Match match;
+		public Not(Match match) {this.match = match;}
+		@Override public boolean match(OsmPrimitive osm) {
+			return !match.match(osm);
+		}
+		@Override public String toString() {return "!"+match;}
+	}
+
+	private static class And extends Match {
+		private Match lhs;
+		private Match rhs;
+		public And(Match lhs, Match rhs) {this.lhs = lhs; this.rhs = rhs;}
+		@Override public boolean match(OsmPrimitive osm) {
+			return lhs.match(osm) && rhs.match(osm);
+		}
+		@Override public String toString() {return lhs+" && "+rhs;}
+	}
+
+	private static class Or extends Match {
+		private Match lhs;
+		private Match rhs;
+		public Or(Match lhs, Match rhs) {this.lhs = lhs; this.rhs = rhs;}
+		@Override public boolean match(OsmPrimitive osm) {
+			return lhs.match(osm) || rhs.match(osm);
+		}
+		@Override public String toString() {return lhs+" || "+rhs;}
+	}
+
+	private static class Id extends Match {
+		private long id;
+		public Id(long id) {this.id = id;}
+		@Override public boolean match(OsmPrimitive osm) {
+			return osm.id == id;
+		}
+		@Override public String toString() {return "id="+id;}
+	}
+
+	private class KeyValue extends Match {
+		private String key;
+		private String value;
+		boolean notValue;
+		public KeyValue(String key, String value, boolean notValue) {this.key = key; this.value = value; this.notValue = notValue;}
+		@Override public boolean match(OsmPrimitive osm) {
+			String value = null;
+			if (key.equals("timestamp"))
+				value = osm.getTimeStr();
+			else
+				value = osm.get(key);
+			if (value == null)
+				return notValue;
+			String v1 = caseSensitive ? value : value.toLowerCase();
+			String v2 = caseSensitive ? this.value : this.value.toLowerCase();
+			return (v1.indexOf(v2) != -1) != notValue;
+		}
+		@Override public String toString() {return key+"="+(notValue?"!":"")+value;}
+	}
+
+	private class Any extends Match {
+		private String s;
+		public Any(String s) {this.s = s;}
+		@Override public boolean match(OsmPrimitive osm) {
+			if (osm.keys == null)
+				return s.equals("");
+			String search = caseSensitive ? s : s.toLowerCase();
+			for (Entry<String, String> e : osm.keys.entrySet()) {
+				String key = caseSensitive ? e.getKey() : e.getKey().toLowerCase();
+				String value = caseSensitive ? e.getValue() : e.getValue().toLowerCase();
+				if (key.indexOf(search) != -1 || value.indexOf(search) != -1)
+					return true;
+			}
+			if (osm.user != null) {
+				String name = osm.user.name;
+				if (!caseSensitive)
+					name = name.toLowerCase();
+				if (name.indexOf(search) != -1)
+					return true;
+			}
+			return false;
+		}
+		@Override public String toString() {return s;}
+	}
+
+	private static class ExactType extends Match {
+		private String type;
+		public ExactType(String type) {this.type = type;}
+		@Override public boolean match(OsmPrimitive osm) {
+			if (osm instanceof Node)
+				return type.equals("node");
+			if (osm instanceof Segment)
+				return type.equals("segment");
+			if (osm instanceof Way)
+				return type.equals("way");
+			throw new IllegalStateException("unknown class "+osm.getClass());
+		}
+		@Override public String toString() {return "type="+type;}
+	}
+
+	private static class Modified extends Match {
+		@Override public boolean match(OsmPrimitive osm) {
+			return osm.modified;
+		}
+		@Override public String toString() {return "modified";}
+	}
+	
+	private static class Selected extends Match {
+		@Override public boolean match(OsmPrimitive osm) {
+			return osm.selected;
+		}
+		@Override public String toString() {return "selected";}
+	}
+
+	private static class Incomplete extends Match {
+		@Override public boolean match(OsmPrimitive osm) {
+			return osm instanceof Way && ((Way)osm).isIncomplete();
+		}
+		@Override public String toString() {return "incomplete";}
+	}
+	
+	public static Match compile(String searchStr, boolean caseSensitive) {
+		SearchCompiler searchCompiler = new SearchCompiler();
+		searchCompiler.caseSensitive = caseSensitive;
+		return searchCompiler.parse(new PushbackReader(new StringReader(searchStr)));
+	}
+
+
+	/**
+	 * The token returned is <code>null</code> or starts with an identifier character:
+	 * - for an '-'. This will be the only character
+	 * : for an key. The value is the next token
+	 * | for "OR"
+	 * ' ' for anything else.
+	 * @return The next token in the stream.
+	 */
+	private String nextToken(PushbackReader search) {
+		try {
+			int next;
+			char c = ' ';
+			while (c == ' ' || c == '\t' || c == '\n') {
+				next = search.read();
+				if (next == -1)
+					return null;
+				c = (char)next;
+			}
+			StringBuilder s;
+			switch (c) {
+			case '-':
+				return "-";
+			case '"':
+				s = new StringBuilder(" ");
+				for (int nc = search.read(); nc != -1 && nc != '"'; nc = search.read())
+					s.append((char)nc);
+				int nc = search.read();
+				if (nc != -1 && (char)nc == ':')
+					return ":"+s.toString();
+				if (nc != -1)
+					search.unread(nc);
+				return s.toString();
+			default:
+				s = new StringBuilder();
+			for (;;) {
+				s.append(c);
+				next = search.read();
+				if (next == -1) {
+					if (s.toString().equals("OR"))
+						return "|";
+					return " "+s.toString();
+				}
+				c = (char)next;
+				if (c == ' ' || c == '\t' || c == ':' || c == '"') {
+					if (c == ':')
+						return ":"+s.toString();
+					search.unread(next);
+					if (s.toString().equals("OR"))
+						return "|";
+					return " "+s.toString();
+				}
+			}
+			}
+		} catch (IOException e) {
+			throw new RuntimeException(e.getMessage(), e);
+		}		
+	}
+
+
+	private boolean notKey = false;
+	private boolean notValue = false;
+	private boolean or = false;
+	private String key = null;
+	String token = null;
+	private Match build() {
+		String value = token.substring(1);
+		if (key == null) {
+			Match c = null;
+			if (value.equals("modified"))
+				c = new Modified();
+			else if (value.equals("incomplete"))
+				c = new Incomplete();
+			else if (value.equals("selected"))
+				c = new Selected();
+			else
+				c = new Any(value);
+			return notValue ? new Not(c) : c;
+		}
+		Match c;
+		if (key.equals("type"))
+			c = new ExactType(value);
+		else if (key.equals("property")) {
+			String realKey = "", realValue = value;
+			int eqPos = value.indexOf("=");
+			if (eqPos != -1) {
+				realKey = value.substring(0,eqPos);
+				realValue = value.substring(eqPos+1);
+			}
+			c = new KeyValue(realKey, realValue, notValue);
+		} else if (key.equals("id")) {
+			try {
+				c = new Id(Long.parseLong(value));
+			} catch (NumberFormatException x) {
+				c = new Id(0);
+			}
+			if (notValue)
+				c = new Not(c);
+		} else
+			c = new KeyValue(key, value, notValue);
+		if (notKey)
+			return new Not(c);
+		return c;
+	}
+
+	private Match parse(PushbackReader search) {
+		Match result = null;
+		for (token = nextToken(search); token != null; token = nextToken(search)) {
+			if (token.equals("-"))
+				notValue = true;
+			else if (token.equals("|")) {
+				if (result == null)
+					continue;
+				or = true;
+				notValue = false;
+			} else if (token.startsWith(":")) {
+				if (key == null) {
+					key = token.substring(1);
+					notKey = notValue;
+					notValue = false;
+				} else
+					key += token.substring(1);
+			} else {
+				Match current = build();
+				if (result == null)
+					result = current;
+				else
+					result = or ? new Or(result, current) : new And(result, current);
+					key = null;
+					notKey = false;
+					notValue = false;
+					or = false;
+			}
+		}
+		// if "key:" was the last search
+		if (key != null) {
+			token = " ";
+			Match current = build();
+			result = (result == null) ? current : new And(result, current);
+		}
+		return result == null ? new Always() : result;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/actions/search/SelectionWebsiteLoader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/search/SelectionWebsiteLoader.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/actions/search/SelectionWebsiteLoader.java	(revision 321)
@@ -0,0 +1,71 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+/**
+ * 
+ */
+package org.openstreetmap.josm.actions.search;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.Map;
+
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.gui.PleaseWaitRunnable;
+import org.openstreetmap.josm.io.OsmIdReader;
+import org.openstreetmap.josm.io.ProgressInputStream;
+import org.xml.sax.SAXException;
+
+public class SelectionWebsiteLoader extends PleaseWaitRunnable {
+	public final URL url;
+	public Collection<OsmPrimitive> sel;
+	private final SearchAction.SearchMode mode;
+	private OsmIdReader idReader = new OsmIdReader();
+	public SelectionWebsiteLoader(String urlStr, SearchAction.SearchMode mode) {
+		super(tr("Load Selection"));
+		this.mode = mode;
+		URL u = null;
+		try {u = new URL(urlStr);} catch (MalformedURLException e) {}
+		this.url = u;
+	}
+	@Override protected void realRun() {
+		Main.pleaseWaitDlg.currentAction.setText(tr("Contact {0}...", url.getHost()));
+		sel = mode != SearchAction.SearchMode.remove ? new LinkedList<OsmPrimitive>() : Main.ds.allNonDeletedPrimitives();
+		try {
+			URLConnection con = url.openConnection();
+			InputStream in = new ProgressInputStream(con, Main.pleaseWaitDlg);
+			Main.pleaseWaitDlg.currentAction.setText(tr("Downloading..."));
+			Map<Long, String> ids = idReader.parseIds(in);
+			for (OsmPrimitive osm : Main.ds.allNonDeletedPrimitives()) {
+				if (ids.containsKey(osm.id) && osm.getClass().getName().toLowerCase().endsWith(ids.get(osm.id))) {
+					if (mode == SearchAction.SearchMode.remove)
+						sel.remove(osm);
+					else
+						sel.add(osm);
+				}
+			}
+		} catch (IOException e) {
+			e.printStackTrace();
+			JOptionPane.showMessageDialog(Main.parent, tr("Could not read from url: \"{0}\"",url));
+		} catch (SAXException e) {
+			e.printStackTrace();
+			JOptionPane.showMessageDialog(Main.parent,tr("Parsing error in url: \"{0}\"",url));
+		}
+	}
+	@Override protected void cancel() {
+		sel = null;
+		idReader.cancel();
+	}
+	@Override protected void finish() {
+		if (sel != null)
+			Main.ds.setSelected(sel);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/command/AddCommand.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/AddCommand.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/command/AddCommand.java	(revision 321)
@@ -0,0 +1,66 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.command;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.util.Collection;
+
+import javax.swing.JLabel;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.MutableTreeNode;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.visitor.AddVisitor;
+import org.openstreetmap.josm.data.osm.visitor.DeleteVisitor;
+import org.openstreetmap.josm.data.osm.visitor.NameVisitor;
+import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+
+/**
+ * A command that adds an osm primitive to a dataset. Keys cannot be added this
+ * way. Use ChangeKeyValueCommand instead.
+ * 
+ * @author imi
+ */
+public class AddCommand extends Command {
+
+	/**
+	 * The primitive to add to the dataset.
+	 */
+	private final OsmPrimitive osm;
+	
+	private DataSet ds;
+
+	/**
+	 * Create the command and specify the element to add.
+	 */
+	public AddCommand(OsmPrimitive osm) {
+		this.osm = osm;
+		this.ds = Main.main.editLayer().data;
+	}
+
+	@Override public void executeCommand() {
+		osm.visit(new AddVisitor(ds));
+	}
+
+	@Override public void undoCommand() {
+		osm.visit(new DeleteVisitor(ds));
+	}
+
+	@Override public void fillModifiedData(Collection<OsmPrimitive> modified, Collection<OsmPrimitive> deleted, Collection<OsmPrimitive> added) {
+		added.add(osm);
+	}
+
+	// faster implementation
+	@Override public boolean invalidBecauselayerRemoved(Layer oldLayer) {
+	    return oldLayer instanceof OsmDataLayer && ((OsmDataLayer)oldLayer).data == ds;
+    }
+
+	@Override public MutableTreeNode description() {
+		NameVisitor v = new NameVisitor();
+		osm.visit(v);
+		return new DefaultMutableTreeNode(new JLabel(tr("Add")+" "+tr(v.className)+" "+v.name, v.icon, JLabel.HORIZONTAL));
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/command/ChangeCommand.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/ChangeCommand.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/command/ChangeCommand.java	(revision 321)
@@ -0,0 +1,40 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.command;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.util.Collection;
+
+import javax.swing.JLabel;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.MutableTreeNode;
+
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.visitor.NameVisitor;
+
+public class ChangeCommand extends Command {
+
+	private final OsmPrimitive osm;
+	private final OsmPrimitive newOsm;
+
+	public ChangeCommand(OsmPrimitive osm, OsmPrimitive newOsm) {
+		this.osm = osm;
+		this.newOsm = newOsm;
+    }
+
+	@Override public void executeCommand() {
+	    super.executeCommand();
+	    osm.cloneFrom(newOsm);
+	    osm.modified = true;
+    }
+
+	@Override public void fillModifiedData(Collection<OsmPrimitive> modified, Collection<OsmPrimitive> deleted, Collection<OsmPrimitive> added) {
+		modified.add(osm);
+    }
+
+	@Override public MutableTreeNode description() {
+		NameVisitor v = new NameVisitor();
+		osm.visit(v);
+		return new DefaultMutableTreeNode(new JLabel(tr("Change")+" "+tr(v.className)+" "+v.name, v.icon, JLabel.HORIZONTAL));
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/command/ChangePropertyCommand.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/ChangePropertyCommand.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/command/ChangePropertyCommand.java	(revision 321)
@@ -0,0 +1,84 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.command;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
+
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.swing.JLabel;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.MutableTreeNode;
+
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.visitor.NameVisitor;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * Command that manipulate the key/value structure of several objects. Manages deletion,
+ * adding and modify of values and keys.
+ * 
+ * @author imi
+ */
+public class ChangePropertyCommand extends Command {
+	/**
+	 * All primitives, that are affected with this command.
+	 */
+	private final List<OsmPrimitive> objects;
+	/**
+	 * The key that is subject to change.
+	 */
+	private final String key;
+	/**
+	 * The key value. If it is <code>null</code>, delete all key references with the given
+	 * key. Else, change the properties of all objects to the given value or create keys of
+	 * those objects that do not have the key yet.
+	 */
+	private final String value;
+	
+	public ChangePropertyCommand(Collection<OsmPrimitive> objects, String key, String value) {
+		this.objects = new LinkedList<OsmPrimitive>(objects);
+		this.key = key;
+		this.value = value;
+	}
+	
+	@Override public void executeCommand() {
+		super.executeCommand(); // save old
+		if (value == null) {
+			for (OsmPrimitive osm : objects) {
+				osm.modified = true;
+				osm.remove(key);
+			}
+		} else {
+			for (OsmPrimitive osm : objects) {
+				osm.modified = true;
+				osm.put(key, value);
+			}
+		}
+	}
+
+	@Override public void fillModifiedData(Collection<OsmPrimitive> modified, Collection<OsmPrimitive> deleted, Collection<OsmPrimitive> added) {
+		modified.addAll(objects);
+	}
+
+	@Override public MutableTreeNode description() {
+		String text = value == null ? tr( "Remove \"{0}\" for", key) : tr("Set {0}={1} for",key,value);
+		if (objects.size() == 1) {
+			NameVisitor v = new NameVisitor();
+			objects.iterator().next().visit(v);
+			text += " "+tr(v.className)+" "+v.name;
+		} else
+			text += " "+objects.size()+" "+trn("object","objects",objects.size());
+		DefaultMutableTreeNode root = new DefaultMutableTreeNode(new JLabel(text, ImageProvider.get("data", "key"), JLabel.HORIZONTAL));
+		if (objects.size() == 1)
+			return root;
+		NameVisitor v = new NameVisitor();
+		for (OsmPrimitive osm : objects) {
+			osm.visit(v);
+			root.add(new DefaultMutableTreeNode(v.toLabel()));
+		}
+		return root;
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/command/Command.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/Command.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/command/Command.java	(revision 321)
@@ -0,0 +1,108 @@
+//License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.command;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import javax.swing.tree.MutableTreeNode;
+
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.osm.visitor.Visitor;
+import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+
+
+/**
+ * Classes implementing Command modify a dataset in a specific way. A command is
+ * one atomic action on a specific dataset, such as move or delete.
+ *
+ * Remember, that the command must be executable and undoable, even if the 
+ * Main.ds has changed, so the command must save the dataset it operates on
+ * if necessary.
+ *
+ * @author imi
+ */
+abstract public class Command {
+
+	private static final class CloneVisitor implements Visitor {
+		public Map<OsmPrimitive, OsmPrimitive> orig = new HashMap<OsmPrimitive, OsmPrimitive>();
+
+		public void visit(Node n) {
+			orig.put(n, new Node(n));
+		}
+		public void visit(Segment s) {
+			orig.put(s, new Segment(s));
+		}
+		public void visit(Way w) {
+			orig.put(w, new Way(w));
+		}
+	}
+
+	private CloneVisitor orig; 
+
+	/**
+	 * Executes the command on the dataset. This implementation will remember all
+	 * primitives returned by fillModifiedData for restoring them on undo.
+	 */
+	public void executeCommand() {
+		orig = new CloneVisitor();
+		Collection<OsmPrimitive> all = new HashSet<OsmPrimitive>();
+		fillModifiedData(all, all, all);
+		for (OsmPrimitive osm : all)
+			osm.visit(orig);
+	}
+
+	/**
+	 * Undoes the command. 
+	 * It can be assumed, that all objects are in the same state they were before.
+	 * It can also be assumed that executeCommand was called exactly once before.
+	 * 
+	 * This implementation undoes all objects stored by a former call to executeCommand.
+	 */
+	public void undoCommand() {
+		for (Entry<OsmPrimitive, OsmPrimitive> e : orig.orig.entrySet())
+			e.getKey().cloneFrom(e.getValue());
+	}
+
+
+	/**
+	 * Called, when a layer has been removed to have the command remove itself from
+	 * any buffer if it is not longer applicable to the dataset (e.g. it was part of
+	 * the removed layer)
+	 */
+	public boolean invalidBecauselayerRemoved(Layer oldLayer) {
+		if (!(oldLayer instanceof OsmDataLayer))
+			return false;
+		HashSet<OsmPrimitive> modified = new HashSet<OsmPrimitive>();
+		fillModifiedData(modified, modified, modified);
+		if (modified.isEmpty())
+			return false;
+
+		HashSet<OsmPrimitive> all = new HashSet<OsmPrimitive>(((OsmDataLayer)oldLayer).data.allPrimitives());
+		for (OsmPrimitive osm : all)
+			if (all.contains(osm))
+				return true;
+
+		return false;
+	}
+
+	/**
+	 * Fill in the changed data this command operates on.
+	 * Add to the lists, don't clear them.
+	 * 
+	 * @param modified  The modified primitives
+	 * @param deleted   The deleted primitives
+	 * @param added		The added primitives
+	 */
+	abstract public void fillModifiedData(Collection<OsmPrimitive> modified,
+			Collection<OsmPrimitive> deleted,
+			Collection<OsmPrimitive> added);
+
+	abstract public MutableTreeNode description();
+}
Index: /trunk/src/org/openstreetmap/josm/command/ConflictResolveCommand.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/ConflictResolveCommand.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/command/ConflictResolveCommand.java	(revision 321)
@@ -0,0 +1,79 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.command;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.Map.Entry;
+
+import javax.swing.JLabel;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.MutableTreeNode;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.conflict.ConflictItem;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.gui.ConflictResolver;
+import org.openstreetmap.josm.gui.dialogs.ConflictDialog;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+public class ConflictResolveCommand extends Command {
+
+	private final Collection<ConflictItem> conflicts;
+	private final Map<OsmPrimitive, OsmPrimitive> resolved;
+	private Map<OsmPrimitive, OsmPrimitive> origAllConflicts;
+	private final ConflictDialog conflictDialog;
+
+	public ConflictResolveCommand(List<ConflictItem> conflicts, Map<OsmPrimitive, OsmPrimitive> resolved) {
+		this.conflicts = conflicts;
+		this.resolved = resolved;
+		conflictDialog = Main.map.conflictDialog;
+	}
+
+	@Override public void executeCommand() {
+		super.executeCommand();
+
+		origAllConflicts = new HashMap<OsmPrimitive, OsmPrimitive>(conflictDialog.conflicts);
+		
+		Set<OsmPrimitive> completed = new HashSet<OsmPrimitive>(resolved.keySet());
+		for (ConflictItem ci : conflicts) {
+			for (Entry<OsmPrimitive, OsmPrimitive> e : resolved.entrySet()) {
+				if (ci.resolution == ConflictResolver.Resolution.THEIR)
+					ci.apply(e.getKey(), e.getValue());
+				else if (ci.resolution == ConflictResolver.Resolution.MY)
+					ci.apply(e.getValue(), e.getKey());
+				else if (ci.hasConflict(e.getKey(), e.getValue()))
+					completed.remove(e.getKey());
+			}
+		}
+		if (!completed.isEmpty()) {
+			for (OsmPrimitive k : completed)
+				conflictDialog.conflicts.remove(k);
+			conflictDialog.rebuildList();
+ 		}
+	}
+
+	@Override public void undoCommand() {
+		super.undoCommand();
+		Main.map.conflictDialog.conflicts.clear();
+		Main.map.conflictDialog.conflicts.putAll(origAllConflicts);
+		Main.map.conflictDialog.rebuildList();
+	}
+
+	@Override public void fillModifiedData(Collection<OsmPrimitive> modified, Collection<OsmPrimitive> deleted, Collection<OsmPrimitive> added) {
+		modified.addAll(resolved.keySet());
+	}
+
+	@Override public MutableTreeNode description() {
+		int i = 0;
+		for (ConflictItem c : conflicts)
+			if (c.resolution != null)
+				i++;
+		return new DefaultMutableTreeNode(new JLabel(tr("Resolve {0} conflicts in {1} objects",i,resolved.size()), ImageProvider.get("data", "object"), JLabel.HORIZONTAL));
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/command/DeleteCommand.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/DeleteCommand.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/command/DeleteCommand.java	(revision 321)
@@ -0,0 +1,66 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.command;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
+
+import java.util.Collection;
+
+import javax.swing.JLabel;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.MutableTreeNode;
+
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.visitor.NameVisitor;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * A command to delete a number of primitives from the dataset.
+ * @author imi
+ */
+public class DeleteCommand extends Command {
+
+	/**
+	 * The primitive that get deleted.
+	 */
+	private final Collection<? extends OsmPrimitive> data;
+
+	public DeleteCommand(Collection<? extends OsmPrimitive> data) {
+		this.data = data;
+	}
+
+	@Override public void executeCommand() {
+		super.executeCommand();
+		for (OsmPrimitive osm : data)
+			osm.delete(true);
+	}
+
+	@Override public void fillModifiedData(Collection<OsmPrimitive> modified, Collection<OsmPrimitive> deleted, Collection<OsmPrimitive> added) {
+		deleted.addAll(data);
+	}
+
+	@Override public MutableTreeNode description() {
+		NameVisitor v = new NameVisitor();
+
+		if (data.size() == 1) {
+			data.iterator().next().visit(v);
+			return new DefaultMutableTreeNode(new JLabel(tr("Delete")+" "+tr(v.className)+" "+v.name, v.icon, JLabel.HORIZONTAL));
+		}
+
+		String cname = null;
+		for (OsmPrimitive osm : data) {
+			osm.visit(v);
+			if (cname == null)
+				cname = v.className;
+			else if (!cname.equals(v.className))
+				cname = "object";
+		}
+		DefaultMutableTreeNode root = new DefaultMutableTreeNode(new JLabel(
+				tr("Delete")+" "+data.size()+" "+trn(cname, cname+"s", data.size()), ImageProvider.get("data", cname), JLabel.HORIZONTAL));
+		for (OsmPrimitive osm : data) {
+			osm.visit(v);
+			root.add(new DefaultMutableTreeNode(v.toLabel()));
+		}
+		return root;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/command/MoveCommand.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/MoveCommand.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/command/MoveCommand.java	(revision 321)
@@ -0,0 +1,123 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.command;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.swing.JLabel;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.MutableTreeNode;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.visitor.AllNodesVisitor;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * MoveCommand moves a set of OsmPrimitives along the map. It can be moved again
+ * to collect several MoveCommands into one command.
+ * 
+ * @author imi
+ */
+public class MoveCommand extends Command {
+	/**
+	 * The objects that should be moved.
+	 */
+	public Collection<Node> objects = new LinkedList<Node>();
+	/**
+	 * x difference movement. Coordinates are in northern/eastern 
+	 */
+	private double x;
+	/**
+	 * y difference movement. Coordinates are in northern/eastern 
+	 */
+	private double y;
+
+	/**
+	 * Small helper for holding the interesting part of the old data state of the
+	 * objects. 
+	 */
+	public static class OldState {
+		LatLon latlon;
+		EastNorth eastNorth;
+		boolean modified;
+	}
+	
+	/**
+	 * List of all old states of the objects.
+	 */
+	private List<OldState> oldState = new LinkedList<OldState>();
+
+	
+	public MoveCommand(OsmPrimitive osm, double x, double y) {
+		this(Collections.singleton(osm), x, y);
+	}
+	/**
+	 * Create a MoveCommand and assign the initial object set and movement vector.
+	 */
+	public MoveCommand(Collection<OsmPrimitive> objects, double x, double y) {
+		this.x = x;
+		this.y = y;
+		this.objects = AllNodesVisitor.getAllNodes(objects);
+		for (Node n : this.objects) {
+			OldState os = new OldState();
+			os.eastNorth = n.eastNorth;
+			os.latlon = n.coor;
+			os.modified = n.modified;
+			oldState.add(os);
+		}
+	}
+
+	/**
+	 * Move the same set of objects again by the specified vector. The vectors
+	 * are added together and so the resulting will be moved to the previous
+	 * vector plus this one.
+	 * 
+	 * The move is immediatly executed and any undo will undo both vectors to
+	 * the original position the objects had before first moving.
+	 */
+	public void moveAgain(double x, double y) {
+		for (Node n : objects) {
+			n.eastNorth = new EastNorth(n.eastNorth.east()+x, n.eastNorth.north()+y);
+			n.coor = Main.proj.eastNorth2latlon(n.eastNorth);
+		}
+		this.x += x;
+		this.y += y;
+	}
+	
+	@Override public void executeCommand() {
+		for (Node n : objects) {
+			n.eastNorth = new EastNorth(n.eastNorth.east()+x, n.eastNorth.north()+y);
+			n.coor = Main.proj.eastNorth2latlon(n.eastNorth);
+			n.modified = true;
+		}
+	}
+
+	@Override public void undoCommand() {
+		Iterator<OldState> it = oldState.iterator();
+		for (Node n : objects) {
+			OldState os = it.next();
+			n.eastNorth = os.eastNorth;
+			n.coor = os.latlon;
+			n.modified = os.modified;
+		}
+	}
+
+	@Override public void fillModifiedData(Collection<OsmPrimitive> modified, Collection<OsmPrimitive> deleted, Collection<OsmPrimitive> added) {
+		for (OsmPrimitive osm : objects)
+			modified.add(osm);
+	}
+
+	@Override public MutableTreeNode description() {
+		return new DefaultMutableTreeNode(new JLabel(tr("Move")+" "+objects.size()+" "+trn("node","nodes",objects.size()), ImageProvider.get("data", "node"), JLabel.HORIZONTAL));
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/command/RotateCommand.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/RotateCommand.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/command/RotateCommand.java	(revision 321)
@@ -0,0 +1,136 @@
+package org.openstreetmap.josm.command;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.Map;
+
+import javax.swing.JLabel;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.MutableTreeNode;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.visitor.AllNodesVisitor;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * RotateCommand rotates a number of objects around their centre.
+ * 
+ * @author Frederik Ramm <frederik@remote.org>
+ */
+public class RotateCommand extends Command {
+	
+	/**
+	 * The objects to rotate.
+	 */
+	public Collection<Node> objects = new LinkedList<Node>();
+	
+	/**
+	 * pivot point
+	 */
+	private Node pivot;
+	
+	/**
+	 * angle of rotation starting click to pivot
+	 */
+	private double startAngle;
+	
+	/**
+	 * computed rotation angle between starting click and current mouse pos
+	 */
+	private double rotationAngle;
+	
+	/**
+	 * List of all old states of the objects.
+	 */
+	private Map<Node, MoveCommand.OldState> oldState = new HashMap<Node, MoveCommand.OldState>();
+	
+	/**
+	 * Creates a RotateCommand.
+	 * Assign the initial object set, compute pivot point and rotation angle.
+	 * Computation of pivot point is done by the same rules that are used in 
+	 * the "align nodes in circle" action.
+	 */
+	public RotateCommand(Collection<OsmPrimitive> objects, EastNorth start, EastNorth end) {
+
+		this.objects = AllNodesVisitor.getAllNodes(objects);
+		pivot = new Node(new LatLon(0,0));
+			
+		for (Node n : this.objects) {
+			MoveCommand.OldState os = new MoveCommand.OldState();
+			os.eastNorth = n.eastNorth;
+			os.latlon = n.coor;
+			os.modified = n.modified;
+			oldState.put(n, os);
+			pivot.eastNorth = new EastNorth(pivot.eastNorth.east()+os.eastNorth.east(), pivot.eastNorth.north()+os.eastNorth.north());
+			pivot.coor = Main.proj.eastNorth2latlon(pivot.eastNorth);
+		}
+		pivot.eastNorth = new EastNorth(pivot.eastNorth.east()/this.objects.size(), pivot.eastNorth.north()/this.objects.size());
+		pivot.coor = Main.proj.eastNorth2latlon(pivot.eastNorth);	
+
+		rotationAngle = Math.PI/2;
+		rotateAgain(start, end);
+	}
+
+	/**
+	 * Rotate the same set of objects again, by the angle between given 
+	 * start and end nodes. Internally this is added to the existing
+	 * rotation so a later undo will undo the whole rotation.
+	 */
+	public void rotateAgain(EastNorth start, EastNorth end) {
+		// compute angle
+		startAngle = Math.atan2(start.east()-pivot.eastNorth.east(), start.north()-pivot.eastNorth.north());
+		double endAngle = Math.atan2(end.east()-pivot.eastNorth.east(), end.north()-pivot.eastNorth.north());
+		rotationAngle += startAngle - endAngle;		
+		rotateNodes(false);
+	}
+	
+	/**
+	 * Helper for actually rotationg the nodes.
+	 * @param setModified - true if rotated nodes should be flagged "modified"
+	 */
+	private void rotateNodes(boolean setModified) {
+		for (Node n : objects) {
+			double cosPhi = Math.cos(rotationAngle);
+			double sinPhi = Math.sin(rotationAngle);
+			EastNorth oldEastNorth = oldState.get(n).eastNorth;
+			double x = oldEastNorth.east() - pivot.eastNorth.east();
+			double y = oldEastNorth.north() - pivot.eastNorth.north();
+			double nx =  sinPhi * x + cosPhi * y + pivot.eastNorth.east();
+			double ny = -cosPhi * x + sinPhi * y + pivot.eastNorth.north();
+			n.eastNorth = new EastNorth(nx, ny);
+			n.coor = Main.proj.eastNorth2latlon(n.eastNorth);
+			if (setModified)
+				n.modified = true;	
+		}
+	}
+	
+	@Override public void executeCommand() {
+		rotateNodes(true);
+	}
+
+	@Override public void undoCommand() {
+		for (Node n : objects) {
+			MoveCommand.OldState os = oldState.get(n);
+			n.eastNorth = os.eastNorth;
+			n.coor = os.latlon;
+			n.modified = os.modified;
+		}
+	}
+
+	@Override public void fillModifiedData(Collection<OsmPrimitive> modified, Collection<OsmPrimitive> deleted, Collection<OsmPrimitive> added) {
+		for (OsmPrimitive osm : objects)
+			modified.add(osm);
+	}
+
+	@Override public MutableTreeNode description() {
+		return new DefaultMutableTreeNode(new JLabel(tr("Rotate")+" "+objects.size()+" "+trn("node","nodes",objects.size()), ImageProvider.get("data", "node"), JLabel.HORIZONTAL));
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/command/SequenceCommand.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/SequenceCommand.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/command/SequenceCommand.java	(revision 321)
@@ -0,0 +1,65 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.command;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.MutableTreeNode;
+
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+
+/**
+ * A command consisting of a sequenz of other commands. Executes the other commands
+ * and undo them in reverse order.
+ * @author imi
+ */
+public class SequenceCommand extends Command {
+
+	/**
+	 * The command sequenz to be executed.
+	 */
+	private Command[] sequence;
+	private final String name;
+
+	/**
+	 * Create the command by specifying the list of commands to execute.
+	 * @param sequenz The sequenz that should be executed.
+	 */
+	public SequenceCommand(String name, Collection<Command> sequenz) {
+		this.name = name;
+		this.sequence = new Command[sequenz.size()];
+		this.sequence = sequenz.toArray(this.sequence);
+	}
+
+	/**
+	 * Convinient constructor, if the commands are known at compile time.
+	 */
+	public SequenceCommand(String name, Command... sequenz) {
+		this(name, Arrays.asList(sequenz));
+	}
+	
+	@Override public void executeCommand() {
+		for (Command c : sequence)
+			c.executeCommand();
+	}
+
+	@Override public void undoCommand() {
+		for (int i = sequence.length-1; i >= 0; --i)
+			sequence[i].undoCommand();
+	}
+
+	@Override public void fillModifiedData(Collection<OsmPrimitive> modified, Collection<OsmPrimitive> deleted, Collection<OsmPrimitive> added) {
+		for (Command c : sequence)
+			c.fillModifiedData(modified, deleted, added);
+	}
+
+	@Override public MutableTreeNode description() {
+		DefaultMutableTreeNode root = new DefaultMutableTreeNode(tr("Sequence")+": "+name);
+		for (Command c : sequence)
+			root.add(c.description());
+	    return root;
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/data/Bounds.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/Bounds.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/Bounds.java	(revision 321)
@@ -0,0 +1,61 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data;
+
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.projection.Projection;
+
+/**
+ * This is a simple data class for "rectangular" areas of the world, given in 
+ * lat/lon min/max values.
+ * 
+ * Do not confuse this with "Area", which is an OSM-primitive for a vector of nodes, 
+ * describing some area (like a sea).
+ * 
+ * @author imi
+ */
+public class Bounds {
+	/**
+	 * The minimum and maximum coordinates.
+	 */
+	public LatLon min, max;
+
+	/**
+	 * Construct bounds out of two points
+	 */
+	public Bounds(LatLon min, LatLon max) {
+		this.min = min;
+		this.max = max;
+	}
+
+	/**
+	 * Construct bounds that span the whole world.
+	 */
+	public Bounds() {
+		min = new LatLon(-Projection.MAX_LAT, -Projection.MAX_LON);
+		max = new LatLon(Projection.MAX_LAT, Projection.MAX_LON);
+	}
+	
+	@Override public String toString() {
+		return "Bounds["+min.lat()+","+min.lon()+","+max.lat()+","+max.lon()+"]";
+	}
+
+	/**
+	 * @return Center of the bounding box.
+	 */
+	public LatLon center() {
+		// not sure, whether this calculation is right.. maybe there is some
+		// more complex calculation needed to get a center of a spherical
+		// dimension?
+		return new LatLon((min.lat()+max.lat())/2, (min.lon()+max.lon())/2);
+	}
+	
+	/**
+	 * Extend the bounds if necessary to include the given point.
+	 */
+	public void extend(LatLon ll) {
+		if (ll.lat() < min.lat() || ll.lon() < min.lon())
+			min = new LatLon(Math.min(ll.lat(), min.lat()), Math.min(ll.lon(), min.lon()));
+		if (ll.lat() > max.lat() || ll.lon() > max.lon())
+			max = new LatLon(Math.max(ll.lat(), max.lat()), Math.max(ll.lon(), max.lon()));
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/data/DataSetChecker.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/DataSetChecker.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/DataSetChecker.java	(revision 321)
@@ -0,0 +1,43 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+
+public class DataSetChecker {
+
+	public static void check() {
+		if (Main.map == null)
+			return;
+
+		Set<OsmPrimitive> s = new HashSet<OsmPrimitive>();
+		for (Layer l : Main.map.mapView.getAllLayers()) {
+			if (l instanceof OsmDataLayer) {
+				for (OsmPrimitive osm : ((OsmDataLayer)l).data.allPrimitives()) {
+					if (s.contains(osm)) {
+		                JOptionPane.showMessageDialog(Main.parent, "cross references");
+		                return;
+					}
+					s.add(osm);
+				}
+			}
+		}
+		
+		if (Main.map.mapView.getActiveLayer() instanceof OsmDataLayer) {
+			OsmDataLayer l = (OsmDataLayer)Main.map.mapView.getActiveLayer();
+			if (l.data != Main.ds) {
+				JOptionPane.showMessageDialog(Main.parent, "Main.ds / active layer mismatch");
+				return;
+			}
+		}
+
+		JOptionPane.showMessageDialog(Main.parent, "working");
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 321)
@@ -0,0 +1,221 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.SortedMap;
+import java.util.StringTokenizer;
+import java.util.TreeMap;
+import java.util.Map.Entry;
+
+import org.openstreetmap.josm.Main;
+
+
+/**
+ * This class holds all preferences for JOSM.
+ * 
+ * Other classes can register their beloved properties here. All properties will be
+ * saved upon set-access.
+ * 
+ * @author imi
+ */
+public class Preferences {
+
+	public static interface PreferenceChangedListener {
+		void preferenceChanged(String key, String newValue);
+	}
+
+	/**
+	 * Class holding one bookmarkentry.
+	 * @author imi
+	 */
+	public static class Bookmark {
+		public String name;
+		public double[] latlon = new double[4]; // minlat, minlon, maxlat, maxlon
+		@Override public String toString() {
+			return name;
+		}
+	}
+
+	public final ArrayList<PreferenceChangedListener> listener = new ArrayList<PreferenceChangedListener>();
+
+	/**
+	 * Map the property name to the property object.
+	 */
+	protected final SortedMap<String, String> properties = new TreeMap<String, String>();
+
+	/**
+	 * Return the location of the user defined preferences file
+	 */
+	public String getPreferencesDir() {
+		if (System.getenv("APPDATA") != null)
+			return System.getenv("APPDATA")+"/JOSM/";
+		return System.getProperty("user.home")+"/.josm/";
+	}
+
+	/**
+	 * @return A list of all existing directories, where ressources could be stored.
+	 */
+	public Collection<String> getAllPossiblePreferenceDirs() {
+	    LinkedList<String> locations = new LinkedList<String>();
+        locations.add(Main.pref.getPreferencesDir());
+        String s;
+        if ((s = System.getenv("JOSM_RESOURCES")) != null) {
+	    	if (!s.endsWith("/") && !s.endsWith("\\"))
+	    		s = s + "/";
+        	locations.add(s);
+        }
+        if ((s = System.getProperty("josm.resources")) != null) {
+	    	if (!s.endsWith("/") && !s.endsWith("\\"))
+	    		s = s + "/";
+        	locations.add(s);
+        }
+       	String appdata = System.getenv("APPDATA");
+       	if (System.getenv("ALLUSERSPROFILE") != null && appdata != null && appdata.lastIndexOf("\\") != -1) {
+       		appdata = appdata.substring(appdata.lastIndexOf("\\"));
+       		locations.add(System.getenv("ALLUSERSPROFILE")+appdata+"/JOSM/");
+       	}
+       	locations.add("/usr/local/share/josm/");
+       	locations.add("/usr/local/lib/josm/");
+       	locations.add("/usr/share/josm/");
+       	locations.add("/usr/lib/josm/");
+	    return locations;
+	}
+
+
+	synchronized public boolean hasKey(final String key) {
+		return properties.containsKey(key);
+	}
+	synchronized public String get(final String key) {
+		if (!properties.containsKey(key))
+			return "";
+		return properties.get(key);
+	}
+	synchronized public String get(final String key, final String def) {
+		final String prop = properties.get(key);
+		if (prop == null || prop.equals(""))
+			return def;
+		return prop;
+	}
+	synchronized public Map<String, String> getAllPrefix(final String prefix) {
+		final Map<String,String> all = new TreeMap<String,String>();
+		for (final Entry<String,String> e : properties.entrySet())
+			if (e.getKey().startsWith(prefix))
+				all.put(e.getKey(), e.getValue());
+		return all;
+	}
+	synchronized public boolean getBoolean(final String key) {
+		return getBoolean(key, false);
+	}
+	synchronized public boolean getBoolean(final String key, final boolean def) {
+		return properties.containsKey(key) ? Boolean.parseBoolean(properties.get(key)) : def;
+	}
+
+
+	synchronized public void put(final String key, final String value) {
+		if (value == null)
+			properties.remove(key);
+		else
+			properties.put(key, value);
+		save();
+		firePreferenceChanged(key, value);
+	}
+	synchronized public void put(final String key, final boolean value) {
+		properties.put(key, Boolean.toString(value));
+		save();
+		firePreferenceChanged(key, Boolean.toString(value));
+	}
+
+
+	private final void firePreferenceChanged(final String key, final String value) {
+		for (final PreferenceChangedListener l : listener)
+			l.preferenceChanged(key, value);
+	}
+
+	/**
+	 * Called after every put. In case of a problem, do nothing but output the error
+	 * in log.
+	 */
+	protected void save() {
+		try {
+			final PrintWriter out = new PrintWriter(new FileWriter(getPreferencesDir() + "preferences"), false);
+			for (final Entry<String, String> e : properties.entrySet())
+				if (!e.getValue().equals(""))
+					out.println(e.getKey() + "=" + e.getValue());
+			out.close();
+		} catch (final IOException e) {
+			e.printStackTrace();
+			// do not message anything, since this can be called from strange
+			// places.
+		}		
+	}
+
+	public void load() throws IOException {
+		properties.clear();
+		final BufferedReader in = new BufferedReader(new FileReader(getPreferencesDir()+"preferences"));
+		int lineNumber = 0;
+		for (String line = in.readLine(); line != null; line = in.readLine(), lineNumber++) {
+			final int i = line.indexOf('=');
+			if (i == -1 || i == 0)
+				throw new IOException("Malformed config file at line "+lineNumber);
+			properties.put(line.substring(0,i), line.substring(i+1));
+		}
+	}
+
+	public final void resetToDefault() {
+		properties.clear();
+		properties.put("laf", "javax.swing.plaf.metal.MetalLookAndFeel");
+		properties.put("projection", "org.openstreetmap.josm.data.projection.Epsg4326");
+		properties.put("propertiesdialog.visible", "true");
+		properties.put("osm-server.url", "http://www.openstreetmap.org/api");
+		save();
+	}
+
+	public Collection<Bookmark> loadBookmarks() throws IOException {
+		File bookmarkFile = new File(getPreferencesDir()+"bookmarks");
+		if (!bookmarkFile.exists())
+			bookmarkFile.createNewFile();
+		BufferedReader in = new BufferedReader(new FileReader(bookmarkFile));
+
+		Collection<Bookmark> bookmarks = new LinkedList<Bookmark>();
+		for (String line = in.readLine(); line != null; line = in.readLine()) {
+			StringTokenizer st = new StringTokenizer(line, ",");
+			if (st.countTokens() < 5)
+				continue;
+			Bookmark b = new Bookmark();
+			b.name = st.nextToken();
+			try {
+				for (int i = 0; i < b.latlon.length; ++i)
+					b.latlon[i] = Double.parseDouble(st.nextToken());
+				bookmarks.add(b);
+			} catch (NumberFormatException x) {
+				// line not parsed
+			}
+		}
+		in.close();
+		return bookmarks;
+	}
+
+	public void saveBookmarks(Collection<Bookmark> bookmarks) throws IOException {
+		File bookmarkFile = new File(Main.pref.getPreferencesDir()+"bookmarks");
+		if (!bookmarkFile.exists())
+			bookmarkFile.createNewFile();
+		PrintWriter out = new PrintWriter(new FileWriter(bookmarkFile));
+		for (Bookmark b : bookmarks) {
+			b.name.replace(',', '_');
+			out.print(b.name+",");
+			for (int i = 0; i < b.latlon.length; ++i)
+				out.print(b.latlon[i]+(i<b.latlon.length-1?",":""));
+			out.println();
+		}
+		out.close();
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/data/SelectionChangedListener.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/SelectionChangedListener.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/SelectionChangedListener.java	(revision 321)
@@ -0,0 +1,26 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data;
+
+import java.util.Collection;
+
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+
+/**
+ * This is a listener for selection changes through the dataset's data. Whenever
+ * a selection of any data meber changes, the dataSet gets informed about this
+ * and fire a selectionChanged event.
+ * 
+ * Note, that these events get not fired immediately but are inserted in the
+ * Swing-event queue and packed together. So only one selection changed event
+ * are issued within one message dispatch routine.
+ * 
+ * @author imi
+ */
+public interface SelectionChangedListener {
+
+	/**
+	 * Informs the listener that the selection in the dataset has changed.
+	 * @param newSelection The new selection.
+	 */
+	public void selectionChanged(Collection<? extends OsmPrimitive> newSelection);
+}
Index: /trunk/src/org/openstreetmap/josm/data/ServerSidePreferences.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/ServerSidePreferences.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/ServerSidePreferences.java	(revision 321)
@@ -0,0 +1,186 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.io.Reader;
+import java.io.StringReader;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.StringTokenizer;
+import java.util.Map.Entry;
+
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.io.OsmConnection;
+import org.openstreetmap.josm.io.XmlWriter;
+import org.openstreetmap.josm.tools.Base64;
+import org.openstreetmap.josm.tools.XmlObjectParser;
+
+/**
+ * This class tweak the Preferences class to provide server side preference settings, as example
+ * used in the applet version.
+ * 
+ * @author Imi
+ */
+public class ServerSidePreferences extends Preferences {
+
+	private final Connection connection;
+
+	private class Connection extends OsmConnection {
+		URL serverUrl;
+		public Connection(URL serverUrl) {
+			this.serverUrl = serverUrl;
+		}
+		public String download() {
+			try {
+				System.out.println("reading preferenced from "+serverUrl);
+				HttpURLConnection con = (HttpURLConnection)serverUrl.openConnection();
+				addAuth(con);
+				con.connect();
+				BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
+				StringBuilder b = new StringBuilder();
+				for (String line = reader.readLine(); line != null; line = reader.readLine()) {
+					b.append(line);
+					b.append("\n");
+				}
+				con.disconnect();
+				return b.toString();
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+			return null;
+		}
+		public void upload(String s) {
+			try {
+				URL u = new URL(getPreferencesDir());
+				System.out.println("uplaoding preferences to "+u);
+				HttpURLConnection con = (HttpURLConnection)u.openConnection();
+				con.addRequestProperty("Authorization", "Basic "+Base64.encode(get("osm-server.username")+":"+get("osm-server.password")));
+				con.setRequestMethod("POST");
+				con.setDoOutput(true);
+				con.connect();
+				PrintWriter out = new PrintWriter(new OutputStreamWriter(con.getOutputStream()));
+				out.println(s);
+				out.close();
+				con.getInputStream().close();
+				con.disconnect();
+				JOptionPane.showMessageDialog(Main.parent, tr("Preferences stored on {0}", u.getHost()));
+			} catch (Exception e) {
+				e.printStackTrace();
+				JOptionPane.showMessageDialog(Main.parent, tr("Could not upload preferences. Reason: {0}", e.getMessage()));
+			}
+		}
+	}
+
+	public ServerSidePreferences(URL serverUrl) {
+		Connection connection = null;
+		try {
+			connection = new Connection(new URL(serverUrl+"user/preferences"));
+		} catch (MalformedURLException e) {
+			e.printStackTrace();
+			JOptionPane.showMessageDialog(Main.parent, tr("Could not load preferences from server."));
+		}
+		this.connection = connection;
+	}
+
+	@Override public String getPreferencesDir() {
+		return connection.serverUrl.toString();
+	}
+
+	/**
+	 * Do nothing on load. Preferences are loaded with download().
+	 */
+	@Override public void load() {
+	}
+
+	/**
+	 * Do nothing on save. Preferences are uploaded using upload().
+	 */
+	@Override protected void save() {
+	}
+
+	public static class Prop {
+		public String key;
+		public String value;
+	}
+
+	public void download(String userName, String password) {
+		resetToDefault();
+		if (!properties.containsKey("osm-server.username") && userName != null)
+			properties.put("osm-server.username", userName);
+		if (!properties.containsKey("osm-server.password") && password != null)
+			properties.put("osm-server.password", password);
+		Reader in = new StringReader(connection.download());
+		try {
+			XmlObjectParser.Uniform<Prop> parser = new XmlObjectParser.Uniform<Prop>(in, "tag", Prop.class);
+			for (Prop p : parser)
+				properties.put(p.key, p.value);
+		} catch (RuntimeException e) {
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * Use this instead of save() for the ServerSidePreferences, since uploads
+	 * are costly while save is called often.
+	 * 
+	 * This is triggered by an explicit menu option.
+	 */
+	public void upload() {
+		StringBuilder b = new StringBuilder("<preferences>\n");
+		for (Entry<String, String> p : properties.entrySet()) {
+			if (p.getKey().equals("osm-server.password"))
+				continue; // do not upload password. It would get stored in plain!
+			b.append("<tag key='");
+			b.append(XmlWriter.encode(p.getKey()));
+			b.append("' value='");
+			b.append(XmlWriter.encode(p.getValue()));
+			b.append("' />\n");
+		}
+		b.append("</preferences>");
+		connection.upload(b.toString());
+	}
+
+	@Override public Collection<Bookmark> loadBookmarks() {
+		try {
+			Collection<Bookmark> bookmarks;
+			BufferedReader in = new BufferedReader(new InputStreamReader(new URL("http://"+connection.serverUrl.getHost()+"/josm/bookmarks").openStream()));
+			bookmarks = new LinkedList<Bookmark>();
+			for (String line = in.readLine(); line != null; line = in.readLine()) {
+				StringTokenizer st = new StringTokenizer(line, ",");
+				if (st.countTokens() < 5)
+					continue;
+				Bookmark b = new Bookmark();
+				b.name = st.nextToken();
+				try {
+					for (int i = 0; i < b.latlon.length; ++i)
+						b.latlon[i] = Double.parseDouble(st.nextToken());
+					bookmarks.add(b);
+				} catch (NumberFormatException x) {
+					// line not parsed
+				}
+			}
+			in.close();
+			return bookmarks;
+		} catch (MalformedURLException e) {
+			e.printStackTrace();
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return Collections.emptyList();
+	}
+
+	@Override public void saveBookmarks(Collection<Bookmark> bookmarks) {
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/data/UndoRedoHandler.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/UndoRedoHandler.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/UndoRedoHandler.java	(revision 321)
@@ -0,0 +1,113 @@
+//License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data;
+
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.Stack;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.command.Command;
+import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.gui.layer.Layer.LayerChangeListener;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer.CommandQueueListener;
+
+public class UndoRedoHandler implements LayerChangeListener {
+
+	/**
+	 * All commands that were made on the dataset. Don't write from outside!
+	 */
+	public final LinkedList<Command> commands = new LinkedList<Command>();
+	/**
+	 * The stack for redoing commands
+	 */
+	private final Stack<Command> redoCommands = new Stack<Command>();
+
+	public final LinkedList<CommandQueueListener> listenerCommands = new LinkedList<CommandQueueListener>();
+
+
+	public UndoRedoHandler() {
+		Layer.listeners.add(this);
+	}
+
+
+	/**
+	 * Execute the command and add it to the intern command queue.
+	 */
+	public void add(final Command c) {
+		c.executeCommand();
+		commands.add(c);
+		redoCommands.clear();
+		if (Main.map != null && Main.map.mapView.getActiveLayer() instanceof OsmDataLayer) {
+			OsmDataLayer data = (OsmDataLayer)Main.map.mapView.getActiveLayer();
+			data.setModified(true);
+		}
+		fireCommandsChanged();
+	}
+
+	/**
+	 * Undoes the last added command.
+	 */
+	public void undo() {
+		if (commands.isEmpty())
+			return;
+		final Command c = commands.removeLast();
+		c.undoCommand();
+		redoCommands.push(c);
+		if (Main.map != null && Main.map.mapView.getActiveLayer() instanceof OsmDataLayer) {
+			OsmDataLayer data = (OsmDataLayer)Main.map.mapView.getActiveLayer();
+			data.setModified(data.uploadedModified || !commands.isEmpty());
+			fireCommandsChanged();
+		}		
+		Main.ds.setSelected();
+	}
+
+	/**
+	 * Redoes the last undoed command.
+	 * TODO: This has to be moved to a central place in order to support multiple layers.
+	 */
+	public void redo() {
+		if (redoCommands.isEmpty())
+			return;
+		final Command c = redoCommands.pop();
+		c.executeCommand();
+		commands.add(c);
+		if (Main.map != null && Main.map.mapView.getActiveLayer() instanceof OsmDataLayer) {
+			OsmDataLayer data = (OsmDataLayer)Main.map.mapView.getActiveLayer();
+			data.setModified(true);
+			fireCommandsChanged();
+		}
+	}
+
+	public void fireCommandsChanged() {
+		for (final CommandQueueListener l : listenerCommands)
+			l.commandChanged(commands.size(), redoCommands.size());
+	}
+
+	public void clean() {
+		redoCommands.clear();
+		commands.clear();
+		fireCommandsChanged();
+	}
+
+	public void layerRemoved(Layer oldLayer) {
+		boolean changed = false;
+		for (Iterator<Command> it = commands.iterator(); it.hasNext();) {
+			if (it.next().invalidBecauselayerRemoved(oldLayer)) {
+				it.remove();
+				changed = true;
+			}
+		}
+		for (Iterator<Command> it = redoCommands.iterator(); it.hasNext();) {
+			if (it.next().invalidBecauselayerRemoved(oldLayer)) {
+				it.remove();
+				changed = true;
+			}
+		}
+		if (changed)
+			fireCommandsChanged();
+	}
+
+	public void layerAdded(Layer newLayer) {}
+	public void activeLayerChange(Layer oldLayer, Layer newLayer) {}
+}
Index: /trunk/src/org/openstreetmap/josm/data/conflict/ConflictItem.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/conflict/ConflictItem.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/conflict/ConflictItem.java	(revision 321)
@@ -0,0 +1,40 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.conflict;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.util.Collection;
+import java.util.Map;
+
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.gui.ConflictResolver.Resolution;
+
+public abstract class ConflictItem {
+
+	public String my, their;
+	public Resolution resolution = null;
+
+	public final void initialize(Map<OsmPrimitive,OsmPrimitive> conflicts) {
+		my = collectStr(conflicts.keySet());
+		their = collectStr(conflicts.values());
+	}
+
+	abstract public boolean hasConflict(OsmPrimitive key, OsmPrimitive value);
+	abstract protected String str(OsmPrimitive osm);
+	abstract public String key();
+	abstract public void apply(OsmPrimitive target, OsmPrimitive other);
+
+	protected final String collectStr(Collection<OsmPrimitive> c) {
+		String value = null;
+		for (OsmPrimitive osm : c) {
+			String v = str(osm);
+			if (value == null)
+				value = v;
+			else if (!value.equals(v)) {
+				value = "<html><i>&lt;"+tr("different")+"&gt;</i></html>";
+				break;
+			}
+		}
+		return value == null ? "" : value;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/data/conflict/DeleteConflict.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/conflict/DeleteConflict.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/conflict/DeleteConflict.java	(revision 321)
@@ -0,0 +1,25 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.conflict;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+
+public class DeleteConflict extends ConflictItem {
+
+	@Override public boolean hasConflict(OsmPrimitive key, OsmPrimitive value) {
+		return key.deleted != value.deleted;
+	}
+
+	@Override public String key() {
+		return "deleted|"+tr("deleted");
+	}
+
+	@Override protected String str(OsmPrimitive osm) {
+		return osm.deleted ? tr("true") : tr("false");
+	}
+
+	@Override public void apply(OsmPrimitive target, OsmPrimitive other) {
+		target.deleted = other.deleted;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/data/conflict/FromConflict.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/conflict/FromConflict.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/conflict/FromConflict.java	(revision 321)
@@ -0,0 +1,27 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.conflict;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+
+public class FromConflict extends ConflictItem {
+
+	@Override public boolean hasConflict(OsmPrimitive key, OsmPrimitive value) {
+		return key instanceof Segment && !((Segment)key).from.equals(((Segment)value).from);
+	}
+	
+	@Override protected String str(OsmPrimitive osm) {
+		return osm instanceof Segment ? String.valueOf(((Segment)osm).from.id) : null;
+	}
+	
+	@Override public String key() {
+		return "segment|"+tr("from");
+	}
+	
+	@Override public void apply(OsmPrimitive target, OsmPrimitive other) {
+		if (target instanceof Segment)
+			((Segment)target).from = ((Segment)other).from;
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/data/conflict/PositionConflict.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/conflict/PositionConflict.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/conflict/PositionConflict.java	(revision 321)
@@ -0,0 +1,29 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.conflict;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+
+public class PositionConflict extends ConflictItem {
+	
+	@Override public boolean hasConflict(OsmPrimitive key, OsmPrimitive value) {
+		return key instanceof Node && !((Node)key).coor.equals(((Node)value).coor);
+	}
+	
+	@Override protected String str(OsmPrimitive osm) {
+		return osm instanceof Node ? ((Node)osm).coor.lat()+", "+((Node)osm).coor.lon() : null;
+	}
+	
+	@Override public String key() {
+		return "node|"+tr("position");
+	}
+	
+	@Override public void apply(OsmPrimitive target, OsmPrimitive other) {
+		if (target instanceof Node) {
+			((Node)target).coor = ((Node)other).coor;
+			((Node)target).eastNorth = ((Node)other).eastNorth;
+		}
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/data/conflict/PropertyConflict.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/conflict/PropertyConflict.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/conflict/PropertyConflict.java	(revision 321)
@@ -0,0 +1,31 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.conflict;
+
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+
+public class PropertyConflict extends ConflictItem {
+	private String key;
+	
+	public PropertyConflict(String key) {
+		this.key = key;
+	}
+	
+	@Override public boolean hasConflict(OsmPrimitive key, OsmPrimitive value) {
+		String k = key.get(this.key);
+		String v = value.get(this.key);
+		return k == null ? v!=null : !k.equals(v);
+	}
+	
+	@Override protected String str(OsmPrimitive osm) {
+		String v = osm.get(key);
+		return v == null ? "" : v;
+	}
+	
+	@Override public String key() {
+		return "key|"+key;
+	}
+	
+	@Override public void apply(OsmPrimitive target, OsmPrimitive other) {
+		target.put(key, other.get(key));
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/data/conflict/SegmentConflict.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/conflict/SegmentConflict.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/conflict/SegmentConflict.java	(revision 321)
@@ -0,0 +1,35 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.conflict;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+
+public class SegmentConflict extends ConflictItem {
+	
+	@Override public boolean hasConflict(OsmPrimitive key, OsmPrimitive value) {
+		return key instanceof Way && !((Way)key).segments.equals(((Way)value).segments);
+	}
+	
+	@Override protected String str(OsmPrimitive osm) {
+		if (!(osm instanceof Way))
+			return null;
+		String s = "";
+		for (Segment ls : ((Way)osm).segments)
+			s += ls.id + ",";
+		return s.equals("") ? "<html><i>&lt;"+tr("none")+"&gt;</i></html>" : s.substring(0, s.length()-1);
+	}
+	
+	@Override public String key() {
+		return "way|"+tr("segments");
+	}
+	
+	@Override public void apply(OsmPrimitive target, OsmPrimitive other) {
+		if (!(target instanceof Way))
+			return;
+		((Way)target).segments.clear();
+		((Way)target).segments.addAll(((Way)other).segments);
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/data/conflict/ToConflict.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/conflict/ToConflict.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/conflict/ToConflict.java	(revision 321)
@@ -0,0 +1,27 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.conflict;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+
+public class ToConflict extends ConflictItem {
+	
+	@Override public boolean hasConflict(OsmPrimitive key, OsmPrimitive value) {
+		return key instanceof Segment && !((Segment)key).to.equals(((Segment)value).to);
+	}
+
+	@Override protected String str(OsmPrimitive osm) {
+		return osm instanceof Segment ? String.valueOf(((Segment)osm).to.id) : null;
+	}
+
+	@Override public String key() {
+		return "segment|"+tr("to");
+	}
+	
+	@Override public void apply(OsmPrimitive target, OsmPrimitive other) {
+		if (target instanceof Segment)
+			((Segment)target).to = ((Segment)other).to;
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/data/coor/Coordinate.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/coor/Coordinate.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/coor/Coordinate.java	(revision 321)
@@ -0,0 +1,60 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.coor;
+
+
+
+
+/**
+ * Base class of points of both coordinate system.
+ * 
+ * The variables are default package protected to allow routines in the data package
+ * to access them directly.
+ * 
+ * As the class itself is package protected too, it is not visible outside of the data
+ * package. Routines there should only use LatLon or EastNorth
+ *
+ * @author imi
+ */ 
+abstract class Coordinate {
+
+	/**
+	 * Either easting or latitude
+	 */
+	final double x;
+	/**
+	 * Either northing or longitude
+	 */
+	final double y;
+
+	/**
+	 * Construct the point with latitude / longitude values.
+	 * The x/y values are left uninitialized.
+	 * 
+	 * @param lat Latitude of the point.
+	 * @param lon Longitude of the point.
+	 */
+	Coordinate(double x, double y) {
+		this.x = x;
+		this.y = y;
+	}
+
+	/**
+	 * Return the squared distance of the northing/easting values between 
+	 * this and the argument.
+	 *
+	 * @param other The other point to calculate the distance to.
+	 * @return The square of the distance between this and the other point,
+	 * 		regarding to the x/y values.
+	 */
+	public double distance(Coordinate other) {
+		return (x-other.x)*(x-other.x)+(y-other.y)*(y-other.y);
+	}
+
+	@Override public boolean equals(Object obj) {
+		return obj instanceof Coordinate ? x == ((Coordinate)obj).x && ((Coordinate)obj).y == y : false;
+	}
+
+	@Override public int hashCode() {
+		return (int)(x*65536+y*4096);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/data/coor/EastNorth.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/coor/EastNorth.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/coor/EastNorth.java	(revision 321)
@@ -0,0 +1,28 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.coor;
+
+/**
+ * Northern, Easting of the projected coordinates.
+ * 
+ * This class is immutable.
+ * 
+ * @author Imi
+ */
+public class EastNorth extends Coordinate {
+
+	public EastNorth(double east, double north) {
+		super(east,north);
+	}
+	
+	public double east() {
+		return x;
+	}
+
+	public double north() {
+		return y;
+	}
+	
+	@Override public String toString() {
+		return "EastNorth[e="+x+", n="+y+"]";
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/data/coor/LatLon.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/coor/LatLon.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/coor/LatLon.java	(revision 321)
@@ -0,0 +1,68 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.coor;
+
+import org.openstreetmap.josm.data.Bounds;
+import org.openstreetmap.josm.data.projection.Projection;
+import java.text.NumberFormat;
+
+/**
+ * LatLon are unprojected latitude / longitude coordinates.
+ * 
+ * This class is immutable.
+ * 
+ * @author Imi
+ */
+public class LatLon extends Coordinate {
+
+	public LatLon(double lat, double lon) {
+		super(lon, lat);
+	}
+
+	public double lat() {
+		return y;
+	}
+
+	public double lon() {
+		return x;
+	}
+
+	/**
+	 * @return <code>true</code>, if the other point has almost the same lat/lon
+	 * values, only differ by no more than 1/Projection.MAX_SERVER_PRECISION.
+	 */
+	public boolean equalsEpsilon(LatLon other) {
+		final double p = 1/Projection.MAX_SERVER_PRECISION;
+		return Math.abs(lat()-other.lat()) <= p && Math.abs(lon()-other.lon()) <= p;
+	}
+
+	/**
+	 * @return <code>true</code>, if the coordinate is outside the world, compared
+	 * by using lat/lon.
+	 */
+	public boolean isOutSideWorld() {
+		return lat() < -Projection.MAX_LAT || lat() > Projection.MAX_LAT || 
+			lon() < -Projection.MAX_LON || lon() > Projection.MAX_LON;
+	}
+
+	/**
+	 * @return <code>true</code> if this is within the given bounding box.
+	 */
+	public boolean isWithin(Bounds b) {
+		return lat() >= b.min.lat() && lat() <= b.max.lat() && lon() > b.min.lon() && lon() < b.max.lon();
+	}
+
+	/**
+	 * Returns this lat/lon pair in human-readable format.
+	 * 
+	 * @return String in the format "lat=1.23456°, lon=2.34567°"
+	 */
+	public String toDisplayString() {
+		NumberFormat nf = NumberFormat.getInstance();
+		nf.setMaximumFractionDigits(5);
+		return "lat=" + nf.format(lat()) + "°, lon=" + nf.format(lon()) + "°";
+	}
+	
+	@Override public String toString() {
+		return "LatLon[lat="+lat()+",lon="+lon()+"]";
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/data/osm/DataSet.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/DataSet.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/osm/DataSet.java	(revision 321)
@@ -0,0 +1,176 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.osm;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.openstreetmap.josm.data.SelectionChangedListener;
+
+/**
+ * DataSet is the data behind the application. It can consists of only a few
+ * points up to the whole osm database. DataSet's can be merged together,
+ * saved, (up/down/disk)loaded etc.
+ *
+ * Note, that DataSet is not an osm-primitive and so has no key association
+ * but a few members to store some information.
+ *
+ * @author imi
+ */
+public class DataSet implements Cloneable {
+
+	/**
+	 * All nodes goes here, even when included in other data (ways etc).
+	 * This enables the instant conversion of the whole DataSet by iterating over
+	 * this data structure.
+	 */
+	public Collection<Node> nodes = new LinkedList<Node>();
+
+	/**
+	 * All segments goes here, even when they are in a way.
+	 */
+	public Collection<Segment> segments = new LinkedList<Segment>();
+
+	/**
+	 * All ways (Streets etc.) in the DataSet.
+	 *
+	 * The nodes of the way segments of this way must be objects from
+	 * the nodes list, however the way segments are stored only in the
+	 * way list.
+	 */
+	public Collection<Way> ways = new LinkedList<Way>();
+
+	/**
+	 * All data sources of this DataSet.
+	 */
+	public Collection<DataSource> dataSources = new LinkedList<DataSource>();
+	
+	/**
+	 * A list of listeners to selection changed events. The list is static,
+	 * as listeners register themself for any dataset selection changes that 
+	 * occour, regardless of the current active dataset. (However, the
+	 * selection does only change in the active layer)
+	 */
+	public static Collection<SelectionChangedListener> listeners = new LinkedList<SelectionChangedListener>();
+
+	/**
+	 * @return A collection containing all primitives of the dataset. The
+	 * data is ordered after: first comes nodes, then segments, then ways.
+	 * Ordering in between the categories is not guaranteed.
+	 */
+	public List<OsmPrimitive> allPrimitives() {
+		List<OsmPrimitive> o = new LinkedList<OsmPrimitive>();
+		o.addAll(nodes);
+		o.addAll(segments);
+		o.addAll(ways);
+		return o;
+	}
+
+	/**
+	 * @return A collection containing all not-deleted primitives (except keys).
+	 */
+	public Collection<OsmPrimitive> allNonDeletedPrimitives() {
+		Collection<OsmPrimitive> o = new LinkedList<OsmPrimitive>();
+		for (OsmPrimitive osm : allPrimitives())
+			if (!osm.deleted)
+				o.add(osm);
+		return o;
+	}
+
+	/**
+	 * Remove the selection of the whole dataset.
+	 * @deprecated Use setSelected() instead.
+	 */
+	@Deprecated
+	public void clearSelection() {
+		clearSelection(nodes);
+		clearSelection(segments);
+		clearSelection(ways);
+		Collection<OsmPrimitive> sel = Collections.emptyList();
+		fireSelectionChanged(sel);
+	}
+
+	/**
+	 * Return a list of all selected objects. Even keys are returned.
+	 * @return List of all selected objects.
+	 */
+	public Collection<OsmPrimitive> getSelected() {
+		Collection<OsmPrimitive> sel = getSelected(nodes);
+		sel.addAll(getSelected(segments));
+		sel.addAll(getSelected(ways));
+		return sel;
+	}
+
+	public void setSelected(Collection<? extends OsmPrimitive> selection) {
+		clearSelection(nodes);
+		clearSelection(segments);
+		clearSelection(ways);
+		for (OsmPrimitive osm : selection)
+			osm.selected = true;
+		fireSelectionChanged(selection);
+	}
+
+	public void setSelected(OsmPrimitive... osm) {
+		if (osm.length == 1 && osm[0] == null) {
+			setSelected();
+			return;
+		}
+		clearSelection(nodes);
+		clearSelection(segments);
+		clearSelection(ways);
+		for (OsmPrimitive o : osm)
+			if (o != null)
+				o.selected = true;
+		fireSelectionChanged(Arrays.asList(osm));
+	}
+
+	/**
+	 * Remove the selection from every value in the collection.
+	 * @param list The collection to remove the selection from.
+	 */
+	private void clearSelection(Collection<? extends OsmPrimitive> list) {
+		if (list == null)
+			return;
+		for (OsmPrimitive osm : list)
+			osm.selected = false;
+	}
+
+	/**
+	 * Return all selected items in the collection.
+	 * @param list The collection from which the selected items are returned.
+	 */
+	private Collection<OsmPrimitive> getSelected(Collection<? extends OsmPrimitive> list) {
+		Collection<OsmPrimitive> sel = new HashSet<OsmPrimitive>();
+		if (list == null)
+			return sel;
+		for (OsmPrimitive osm : list)
+			if (osm.selected && !osm.deleted)
+				sel.add(osm);
+		return sel;
+	}
+
+	/**
+	 * Remember to fire an selection changed event. A call to this will not fire
+	 * the event immediately. For more, @see SelectionChangedListener
+	 */
+	public static void fireSelectionChanged(Collection<? extends OsmPrimitive> sel) {
+		for (SelectionChangedListener l : listeners)
+			l.selectionChanged(sel);
+	}
+
+	@Override public DataSet clone() {
+		DataSet ds = new DataSet();
+		for (Node n : nodes)
+			ds.nodes.add(new Node(n));
+		for (Segment s : segments)
+			ds.segments.add(new Segment(s));
+		for (Way w : ways)
+			ds.ways.add(new Way(w));
+		for (DataSource source : dataSources)
+			ds.dataSources.add(new DataSource(source.bounds, source.origin));
+	    return ds;
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/data/osm/DataSource.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/DataSource.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/osm/DataSource.java	(revision 321)
@@ -0,0 +1,18 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.osm;
+
+import org.openstreetmap.josm.data.Bounds;
+
+public class DataSource implements Cloneable {
+	public final Bounds bounds;
+	public final String origin;
+	
+	public DataSource(Bounds bounds, String origin) {
+	    this.bounds = bounds;
+	    this.origin = origin;
+    }
+
+	@Override protected Object clone() throws CloneNotSupportedException {
+	    return new DataSource(bounds, origin);
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/data/osm/Node.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/Node.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/osm/Node.java	(revision 321)
@@ -0,0 +1,53 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.osm;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.osm.visitor.Visitor;
+
+
+/**
+ * One node data, consisting of one world coordinate waypoint.
+ *
+ * @author imi
+ */
+public final class Node extends OsmPrimitive {
+	
+	public LatLon coor;
+	public volatile EastNorth eastNorth;
+
+	/**
+	 * Create an identical clone of the argument (including the id)
+	 */
+	public Node(Node clone) {
+		cloneFrom(clone);
+	}
+
+	public Node(LatLon latlon) {
+		this.coor = latlon;
+		eastNorth = Main.proj.latlon2eastNorth(latlon);
+	}
+
+	@Override public void visit(Visitor visitor) {
+		visitor.visit(this);
+	}
+	
+	@Override public void cloneFrom(OsmPrimitive osm) {
+		super.cloneFrom(osm);
+		coor = ((Node)osm).coor;
+		eastNorth = ((Node)osm).eastNorth;
+	}
+
+	@Override public String toString() {
+		return "{Node id="+id+",lat="+coor.lat()+",lon="+coor.lon()+"}";
+	}
+
+	@Override public boolean realEqual(OsmPrimitive osm, boolean semanticOnly) {
+		return osm instanceof Node ? super.realEqual(osm, semanticOnly) && coor.equals(((Node)osm).coor) : false;
+    }
+
+	public int compareTo(OsmPrimitive o) {
+	    return o instanceof Node ? Long.valueOf(id).compareTo(o.id) : 1;
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java	(revision 321)
@@ -0,0 +1,207 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.osm;
+
+import java.text.SimpleDateFormat;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.openstreetmap.josm.data.osm.visitor.Visitor;
+
+
+/**
+ * An OSM primitive can be associated with a key/value pair. It can be created, deleted
+ * and updated within the OSM-Server.
+ *
+ * Although OsmPrimitive is designed as a base class, it is not to be meant to subclass
+ * it by any other than from the package org.openstreetmap.josm.data.osm (thus the
+ * visibility of the constructor). The available primitives are a fixed set that are given
+ * by the server environment and not an extendible data stuff. 
+ *
+ * @author imi
+ */
+abstract public class OsmPrimitive implements Comparable<OsmPrimitive> {
+
+	/**
+	 * The key/value list for this primitive.
+	 */
+	public Map<String, String> keys;
+
+	/**
+	 * Unique identifier in OSM. This is used to reidentify objects in the server.
+	 * An id of 0 means an unknown id. The object has not been uploaded yet to 
+	 * know what id it will get.
+	 * 
+	 * Do not write to this attribute except you know exactly what you are doing.
+	 * More specific, it is not good to set this to 0 and think the object is now
+	 * new to the server! To create a new object, call the default constructor of
+	 * the respective class.
+	 */
+	public long id = 0;
+
+	/**
+	 * <code>true</code>, if the object has been modified since it was loaded from
+	 * the server. In this case, on next upload, this object will be updated.
+	 * Deleted objects are deleted from the server. If the objects are added (id=0),
+	 * the modified is ignored and the object is added to the server. 
+	 */
+	public boolean modified = false;
+
+	/**
+	 * <code>true</code>, if the object has been deleted.
+	 */
+	public boolean deleted = false;
+
+	/**
+	 * Visibility status as specified by the server. The visible attribute was
+	 * introduced with the 0.4 API to be able to communicate deleted objects
+	 * (they will have visible=false). Currently JOSM does never deal with
+	 * these, so this is really for future use only.
+	 */
+	public boolean visible = true;
+	
+	/** 
+	 * User that last modified this primitive, as specified by the server.
+	 * Never changed by JOSM.
+	 */
+	public User user = null;
+	
+	/**
+	 * <code>true</code>, if the object has been shown. This property is not used
+	 * internally by JOSM, but can be used by plugins that take over the object
+	 * rendering.
+	 */
+	public volatile boolean shown = false;
+
+	/**
+	 * If set to true, this object is currently selected.
+	 */
+	public volatile boolean selected = false;
+
+	/**
+	 * Time of last modification to this object. This is not set by JOSM but
+	 * read from the server and delivered back to the server unmodified. It is
+	 * used to check against edit conflicts.
+	 */
+	public Date timestamp = null;
+
+	/**
+	 * Implementation of the visitor scheme. Subclases have to call the correct
+	 * visitor function.
+	 * @param visitor The visitor from which the visit() function must be called.
+	 */
+	abstract public void visit(Visitor visitor);
+
+	public final void delete(boolean deleted) {
+		this.deleted = deleted;
+		selected = false;
+		modified = true;
+	}
+
+	/**
+	 * Equal, if the id (and class) is equal. If both ids are 0, use the super classes
+	 * equal instead.
+	 * 
+	 * An primitive is equal to its incomplete counter part.
+	 */
+	@Override public final boolean equals(Object obj) {
+		if (obj == null || getClass() != obj.getClass() || id == 0 || ((OsmPrimitive)obj).id == 0)
+			return super.equals(obj);
+		return id == ((OsmPrimitive)obj).id;
+	}
+
+	/**
+	 * Return the id plus the class type encoded as hashcode or supers hashcode if id is 0.
+	 * 
+	 * An primitive has the same hashcode as its incomplete counter part.
+	 */
+	@Override public final int hashCode() {
+		if (id == 0)
+			return super.hashCode();
+		final int[] ret = new int[1];
+		Visitor v = new Visitor(){
+			public void visit(Node n) { ret[0] = 1; }
+			public void visit(Segment s) { ret[0] = 2; }
+			public void visit(Way w) { ret[0] = 3; }
+		};
+		visit(v);
+		return id == 0 ? super.hashCode() : (int)(id<<3)+ret[0];
+	}
+
+	/**
+	 * Set the given value to the given key
+	 * @param key The key, for which the value is to be set.
+	 * @param value The value for the key.
+	 */
+	public final void put(String key, String value) {
+		if (value == null)
+			remove(key);
+		else {
+			if (keys == null)
+				keys = new HashMap<String, String>();
+			keys.put(key, value);
+		}
+	}
+	/**
+	 * Remove the given key from the list.
+	 */
+	public final void remove(String key) {
+		if (keys != null) {
+			keys.remove(key);
+			if (keys.isEmpty())
+				keys = null;
+		}
+	}
+
+	public final String get(String key) {
+		return keys == null ? null : keys.get(key);
+	}
+
+	public final Collection<Entry<String, String>> entrySet() {
+		if (keys == null)
+			return Collections.emptyList();
+		return keys.entrySet();
+	}
+
+	public final Collection<String> keySet() {
+		if (keys == null)
+			return Collections.emptyList();
+		return keys.keySet();
+	}
+
+	/**
+	 * Get and write all attributes from the parameter. Does not fire any listener, so
+	 * use this only in the data initializing phase
+	 */
+	public void cloneFrom(OsmPrimitive osm) {
+		keys = osm.keys == null ? null : new HashMap<String, String>(osm.keys);
+		id = osm.id;
+		modified = osm.modified;
+		deleted = osm.deleted;
+		selected = osm.selected;
+		timestamp = osm.timestamp;
+	}
+
+	/**
+	 * Perform an equality compare for all non-volatile fields not only for the id 
+	 * but for the whole object (for conflict resolving)
+	 * @param semanticOnly if <code>true</code>, modified flag and timestamp are not compared
+	 */
+	public boolean realEqual(OsmPrimitive osm, boolean semanticOnly) {
+		return
+			id == osm.id && 
+			(semanticOnly || (modified == osm.modified)) && 
+			deleted == osm.deleted &&
+			(semanticOnly || (timestamp == null ? osm.timestamp==null : timestamp.equals(osm.timestamp))) &&
+			(semanticOnly || (user == null ? osm.user==null : user==osm.user)) &&
+			(semanticOnly || (visible == osm.visible)) &&
+			(keys == null ? osm.keys==null : keys.equals(osm.keys));
+	}
+	
+	public String getTimeStr() {
+		return timestamp == null ? null : new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(timestamp);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/data/osm/Segment.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/Segment.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/osm/Segment.java	(revision 321)
@@ -0,0 +1,93 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.osm;
+
+import org.openstreetmap.josm.data.osm.visitor.Visitor;
+
+
+/**
+ * One way segment consisting of a pair of nodes (from/to) 
+ *
+ * @author imi
+ */
+public final class Segment extends OsmPrimitive {
+
+	/**
+	 * The starting node of the segment
+	 */
+	public Node from;
+
+	/**
+	 * The ending node of the segment
+	 */
+	public Node to;
+
+	/**
+	 * If set to true, this object is incomplete, which means only the id
+	 * and type is known (type is the objects instance class)
+	 */
+	public boolean incomplete;
+
+	/**
+	 * Create an identical clone of the argument (including the id)
+	 */
+	public Segment(Segment clone) {
+		cloneFrom(clone);
+	}
+
+	/**
+	 * Create an segment from the given starting and ending node
+	 * @param from	Starting node of the segment.
+	 * @param to	Ending node of the segment.
+	 */
+	public Segment(Node from, Node to) {
+		this.from = from;
+		this.to = to;
+		incomplete = false;
+	}
+
+	public Segment(long id) {
+		this.id = id;
+		incomplete = true;
+	}
+
+	@Override public void visit(Visitor visitor) {
+		visitor.visit(this);
+	}
+
+	/**
+	 * @return <code>true</code>, if the <code>ls</code> occupy
+	 * exactly the same place as <code>this</code>.
+	 */
+	public boolean equalPlace(Segment ls) {
+		if (equals(ls))
+			return true;
+		if (incomplete || ls.incomplete)
+			return incomplete == ls.incomplete;
+		return ((from.coor.equals(ls.from.coor) && to.coor.equals(ls.to.coor)) ||
+				(from.coor.equals(ls.to.coor) && to.coor.equals(ls.from.coor)));
+	}
+
+	@Override public void cloneFrom(OsmPrimitive osm) {
+		super.cloneFrom(osm);
+		Segment ls = ((Segment)osm);
+		from = ls.from;
+		to = ls.to;
+		incomplete = ls.incomplete;
+	}
+
+	@Override public String toString() {
+		return "{Segment id="+id+" from="+from+" to="+to+"}";
+	}
+
+	@Override public boolean realEqual(OsmPrimitive osm, boolean semanticOnly) {
+		if (!(osm instanceof Segment))
+			return super.realEqual(osm, semanticOnly); 
+		if (incomplete)
+			return super.realEqual(osm, semanticOnly) && ((Segment)osm).incomplete;
+		return super.realEqual(osm, semanticOnly) && from.equals(((Segment)osm).from) && to.equals(((Segment)osm).to);
+	}
+
+	public int compareTo(OsmPrimitive o) {
+		return o instanceof Segment ? Long.valueOf(id).compareTo(o.id) : (o instanceof Node ? -1 : 1);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/data/osm/User.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/User.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/osm/User.java	(revision 321)
@@ -0,0 +1,38 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.osm;
+
+import java.util.HashMap;
+
+/** 
+ * A simple class to keep a list of user names.
+ * 
+ * Instead of storing user names as strings with every OSM primtive, we store
+ * a reference to an user object, and make sure that for each username there
+ * is only one user object.
+ * 
+ * @author fred
+ *
+ */
+public class User {
+
+	/** storage for existing User objects. */
+	private static HashMap<String,User> userMap = new HashMap<String,User>();
+	
+	/** the username. */
+	public String name;
+	
+	/** private constructor, only called from get method. */
+	private User(String name) {
+		this.name = name;
+	}
+	
+	/** returns a new or existing User object that represents the given name. */
+	public static User get(String name) {
+		User user = userMap.get(name);
+		if (user == null) {
+			user = new User(name);
+			userMap.put(name, user);
+		}
+		return user;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/data/osm/Way.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/Way.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/osm/Way.java	(revision 321)
@@ -0,0 +1,60 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.osm;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.openstreetmap.josm.data.osm.visitor.Visitor;
+
+/**
+ * One full way, consisting of several way segments chained together.
+ *
+ * @author imi
+ */
+public final class Way extends OsmPrimitive {
+
+	/**
+	 * All way segments in this way
+	 */
+	public final List<Segment> segments = new ArrayList<Segment>();
+
+	@Override public void visit(Visitor visitor) {
+		visitor.visit(this);
+	}
+
+	/**
+	 * Create an identical clone of the argument (including the id)
+	 */
+	public Way(Way clone) {
+		cloneFrom(clone);
+	}
+	
+	public Way() {
+	}
+	
+	@Override public void cloneFrom(OsmPrimitive osm) {
+		super.cloneFrom(osm);
+		segments.clear();
+		segments.addAll(((Way)osm).segments);
+	}
+
+    @Override public String toString() {
+        return "{Way id="+id+" segments="+Arrays.toString(segments.toArray())+"}";
+    }
+
+	@Override public boolean realEqual(OsmPrimitive osm, boolean semanticOnly) {
+		return osm instanceof Way ? super.realEqual(osm, semanticOnly) && segments.equals(((Way)osm).segments) : false;
+    }
+
+	public int compareTo(OsmPrimitive o) {
+	    return o instanceof Way ? Long.valueOf(id).compareTo(o.id) : -1;
+    }
+	
+	public boolean isIncomplete() {
+		for (Segment s : segments)
+			if (s.incomplete)
+				return true;
+		return false;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/data/osm/visitor/AddVisitor.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/visitor/AddVisitor.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/osm/visitor/AddVisitor.java	(revision 321)
@@ -0,0 +1,35 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+/**
+ */
+package org.openstreetmap.josm.data.osm.visitor;
+
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.Way;
+
+/**
+ * Visitor, that adds the visited object to the dataset given at constructor.
+ * 
+ * Is not capable of adding keys.
+ * 
+ * @author imi
+ */
+public class AddVisitor implements Visitor {
+	
+	protected final DataSet ds;
+	
+	public AddVisitor(DataSet ds) {
+		this.ds = ds;
+	}
+	
+	public void visit(Node n) {
+		ds.nodes.add(n);
+	}
+	public void visit(Segment s) {
+		ds.segments.add(s);
+	}
+	public void visit(Way w) {
+		ds.ways.add(w);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/data/osm/visitor/AllNodesVisitor.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/visitor/AllNodesVisitor.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/osm/visitor/AllNodesVisitor.java	(revision 321)
@@ -0,0 +1,58 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.osm.visitor;
+
+import java.util.Collection;
+import java.util.HashSet;
+
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Way;
+
+/**
+ * Collect all nodes a specific osm primitive has.
+ * 
+ * @author imi
+ */
+public class AllNodesVisitor implements Visitor {
+
+	/**
+	 * The resulting nodes collected so far.
+	 */
+	public Collection<Node> nodes = new HashSet<Node>();
+
+	/**
+	 * Nodes have only itself as nodes.
+	 */
+	public void visit(Node n) {
+		nodes.add(n);
+	}
+
+	/**
+	 * Line segments have exactly two nodes: from and to.
+	 */
+	public void visit(Segment ls) {
+		if (!ls.incomplete) {
+			visit(ls.from);
+			visit(ls.to);
+		}
+	}
+
+	/**
+	 * Ways have all nodes from their segments.
+	 */
+	public void visit(Way w) {
+		for (Segment ls : w.segments)
+			visit(ls);
+	}
+
+	/**
+	 * @return All nodes the given primitive has.
+	 */
+	public static Collection<Node> getAllNodes(Collection<? extends OsmPrimitive> osms) {
+		AllNodesVisitor v = new AllNodesVisitor();
+		for (OsmPrimitive osm : osms)
+			osm.visit(v);
+		return v.nodes;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/data/osm/visitor/BoundingXYVisitor.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/visitor/BoundingXYVisitor.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/osm/visitor/BoundingXYVisitor.java	(revision 321)
@@ -0,0 +1,58 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.osm.visitor;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.Bounds;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.Way;
+
+/**
+ * Calculates the total bounding rectangle of a serie of OsmPrimitives, using the 
+ * EastNorth values as reference.
+ * @author imi
+ */
+public class BoundingXYVisitor implements Visitor {
+
+	public EastNorth min, max;
+
+	public void visit(Node n) {
+		visit(n.eastNorth);
+	}
+
+	public void visit(Segment ls) {
+		if (!ls.incomplete) {
+			visit(ls.from);
+			visit(ls.to);
+		}
+	}
+
+	public void visit(Way w) {
+		for (Segment ls : w.segments)
+			visit(ls);
+	}
+
+	public void visit(EastNorth eastNorth) {
+		if (eastNorth != null) {
+			if (min == null)
+				min = eastNorth;
+			else if (eastNorth.east() < min.east() || eastNorth.north() < min.north())
+				min = new EastNorth(Math.min(min.east(), eastNorth.east()), Math.min(min.north(), eastNorth.north()));
+			
+			if (max == null)
+				max = eastNorth;
+			else if (eastNorth.east() > max.east() || eastNorth.north() > max.north())
+				max = new EastNorth(Math.max(max.east(), eastNorth.east()), Math.max(max.north(), eastNorth.north()));
+		}
+	}
+
+	/**
+	 * @return The bounding box or <code>null</code> if no coordinates have passed
+	 */
+	public Bounds getBounds() {
+		if (min == null || max == null)
+			return null;
+		return new Bounds(Main.proj.eastNorth2latlon(min), Main.proj.eastNorth2latlon(max));
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/data/osm/visitor/CollectBackReferencesVisitor.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/visitor/CollectBackReferencesVisitor.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/osm/visitor/CollectBackReferencesVisitor.java	(revision 321)
@@ -0,0 +1,68 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.osm.visitor;
+
+import java.util.Collection;
+import java.util.HashSet;
+
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Way;
+
+/**
+ * Helper that collect all segments a node is part of, all ways
+ * a node or segment is part of and all areas a node is part of. 
+ * 
+ * Deleted objects are not collected.
+ * 
+ * @author imi
+ */
+public class CollectBackReferencesVisitor implements Visitor {
+
+	private final DataSet ds;
+
+	/**
+	 * The result list of primitives stored here.
+	 */
+	public final Collection<OsmPrimitive> data = new HashSet<OsmPrimitive>();
+
+
+	/**
+	 * Construct a back reference counter.
+	 * @param ds The dataset to operate on.
+	 */
+	public CollectBackReferencesVisitor(DataSet ds) {
+		this.ds = ds;
+	}
+
+	public void visit(Node n) {
+		for (Way w : ds.ways) {
+			if (w.deleted)
+				continue;
+			for (Segment ls : w.segments) {
+				if (ls.incomplete)
+					continue;
+				if (ls.from == n || ls.to == n) {
+					data.add(w);
+					break;
+				}
+			}
+		}
+		for (Segment ls : ds.segments) {
+			if (ls.deleted || ls.incomplete)
+				continue;
+			if (ls.from == n || ls.to == n)
+				data.add(ls);
+		}
+	}
+	public void visit(Segment ls) {
+		for (Way w : ds.ways) {
+			if (w.deleted)
+				continue;
+			if (w.segments.contains(ls))
+				data.add(w);
+		}
+	}
+	public void visit(Way w) {}
+}
Index: /trunk/src/org/openstreetmap/josm/data/osm/visitor/DeleteVisitor.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/visitor/DeleteVisitor.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/osm/visitor/DeleteVisitor.java	(revision 321)
@@ -0,0 +1,35 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+/**
+ */
+package org.openstreetmap.josm.data.osm.visitor;
+
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.Way;
+
+/**
+ * Visitor, that adds the visited object to the dataset given at constructor.
+ * 
+ * Is not capable of adding keys.
+ * 
+ * @author imi
+ */
+public class DeleteVisitor implements Visitor {
+	
+	private final DataSet ds;
+	
+	public DeleteVisitor(DataSet ds) {
+		this.ds = ds;
+	}
+	
+	public void visit(Node n) {
+		ds.nodes.remove(n);
+	}
+	public void visit(Segment ls) {
+		ds.segments.remove(ls);
+	}
+	public void visit(Way w) {
+		ds.ways.remove(w);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/data/osm/visitor/MergeVisitor.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/visitor/MergeVisitor.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/osm/visitor/MergeVisitor.java	(revision 321)
@@ -0,0 +1,363 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.osm.visitor;
+
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.Map;
+
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+
+/**
+ * A visitor that get a data set at construction time and merge every visited object
+ * into it.
+ * 
+ * @author imi
+ */
+public class MergeVisitor implements Visitor {
+
+	/**
+	 * Map from primitives in the database to visited primitives. (Attention: The other way 
+	 * round than mergedNodes and mergedSegments)
+	 */
+	public Map<OsmPrimitive, OsmPrimitive> conflicts = new HashMap<OsmPrimitive, OsmPrimitive>();
+
+	private final DataSet ds;
+	private final DataSet mergeds;
+
+	/**
+	 * A list of all nodes that got replaced with other nodes.
+	 * Key is the node in the other's dataset and the value is the one that is now
+	 * in ds.nodes instead.
+	 */
+	private final Map<Node, Node> mergedNodes = new HashMap<Node, Node>();
+	/**
+	 * A list of all segments that got replaced with others.
+	 * Key is the segment in the other's dataset and the value is the one that is now
+	 * in ds.segments.
+	 */
+	private final Map<Segment, Segment> mergedSegments = new HashMap<Segment, Segment>();
+
+	public MergeVisitor(DataSet ds, DataSet mergeds) {
+		this.ds = ds;
+		this.mergeds = mergeds;
+	}
+
+	/**
+	 * Merge the node if the id matches with any of the internal set or if
+	 * either id is zero, merge if lat/lon matches.
+	 */
+	public void visit(Node other) {
+		if (mergeAfterId(mergedNodes, ds.nodes, other))
+			return;
+
+		Node my = null;
+		for (Node n : ds.nodes) {
+			if (match(n, other) && ((mergeds == null) || (!mergeds.nodes.contains(n)))) {
+				my = n;
+				break;
+			}
+		}
+		if (my == null)
+			ds.nodes.add(other);
+		else {
+			mergedNodes.put(other, my);
+			mergeCommon(my, other);
+			if (my.modified && !other.modified)
+				return;
+			if (!my.coor.equalsEpsilon(other.coor)) {
+				my.coor = other.coor;
+				my.eastNorth = other.eastNorth;
+				my.modified = other.modified;
+			}
+		}
+	}
+
+	/**
+	 * Merge the segment if id matches or if both nodes are the same (and the
+	 * id is zero of either segment). Nodes are the "same" when they @see match
+	 */
+	public void visit(Segment other) {
+		if (mergeAfterId(mergedSegments, ds.segments, other))
+			return;
+
+		Segment my = null;
+		for (Segment ls : ds.segments) {
+			if (match(other, ls) && ((mergeds == null) || (!mergeds.segments.contains(ls)))) {
+				my = ls;
+				break;
+			}
+		}
+		
+		if (my == null)
+			ds.segments.add(other);
+		else if (my.incomplete && !other.incomplete) {
+			mergedSegments.put(other, my);
+			my.cloneFrom(other);
+		} else if (!other.incomplete) {
+			mergedSegments.put(other, my);
+			mergeCommon(my, other);
+			if (my.modified && !other.modified)
+				return;
+			if (!match(my.from, other.from)) {
+				my.from = other.from;
+				my.modified = other.modified;
+			}
+			if (!match(my.to, other.to)) {
+				my.to = other.to;
+				my.modified = other.modified;
+			}
+		}
+	}
+
+	private <T extends OsmPrimitive> void cloneFromExceptIncomplete(T myOsm, T otherOsm) {
+		if (!(myOsm instanceof Way))
+			myOsm.cloneFrom(otherOsm);
+		else {
+			Way my = (Way)myOsm;
+			Way other = (Way)otherOsm;
+			HashMap<Long, Segment> copy = new HashMap<Long, Segment>();
+			for (Segment s : my.segments)
+				copy.put(s.id, s);
+			my.cloneFrom(other);
+			my.segments.clear();
+			for (Segment s : other.segments) {
+				Segment myS = copy.get(s.id);
+				if (s.incomplete && myS != null && !myS.incomplete) {
+					mergedSegments.put(s, myS);
+					my.segments.add(myS);
+				} else
+					my.segments.add(s);
+			}
+		}
+    }
+
+	/**
+	 * Merge the way if id matches or if all segments matches and the
+	 * id is zero of either way.
+	 */
+	public void visit(Way other) {
+		if (mergeAfterId(null, ds.ways, other))
+			return;
+
+		Way my = null;
+		for (Way w : ds.ways) {
+			if (match(other, w) && ((mergeds == null) || (!mergeds.ways.contains(w)))) {
+				my = w;
+				break;
+			}
+		}
+		if (my == null) {
+			// Add the way and replace any incomplete segments that we already have
+			ds.ways.add(other);
+			for (Segment s : other.segments) {
+				if (s.incomplete) {
+					for (Segment ourSegment : ds.segments) {
+						if (ourSegment.id == s.id) {
+							mergedSegments.put(s, ourSegment);
+							break;
+						}
+					}
+				}
+			}
+		} else {
+			mergeCommon(my, other);
+			if (my.modified && !other.modified)
+				return;
+			boolean same = true;
+			Iterator<Segment> it = other.segments.iterator();
+			for (Segment ls : my.segments) {
+				if (!match(ls, it.next()))
+					same = false;
+			}
+			if (!same) {
+				HashMap<Long, Segment> copy = new HashMap<Long, Segment>();
+				for (Segment s : my.segments)
+					copy.put(s.id, s);
+				my.segments.clear();
+				for (Segment s : other.segments) {
+					Segment myS = copy.get(s.id);
+					if (s.incomplete && myS != null && !myS.incomplete) {
+						mergedSegments.put(s, myS);
+						my.segments.add(myS);
+					} else
+						my.segments.add(s);
+				}
+				my.modified = other.modified;
+			}
+		}
+	}
+
+	/**
+	 * Postprocess the dataset and fix all merged references to point to the actual
+	 * data.
+	 */
+	public void fixReferences() {
+		for (Segment s : ds.segments)
+			fixSegment(s);
+		for (OsmPrimitive osm : conflicts.values())
+			if (osm instanceof Segment)
+				fixSegment((Segment)osm);
+		for (Way w : ds.ways)
+			fixWay(w);
+		for (OsmPrimitive osm : conflicts.values())
+			if (osm instanceof Way)
+				fixWay((Way)osm);
+	}
+
+	private void fixWay(Way w) {
+	    boolean replacedSomething = false;
+	    LinkedList<Segment> newSegments = new LinkedList<Segment>();
+	    for (Segment ls : w.segments) {
+	    	Segment otherLs = mergedSegments.get(ls);
+	    	newSegments.add(otherLs == null ? ls : otherLs);
+	    	if (otherLs != null)
+	    		replacedSomething = true;
+	    }
+	    if (replacedSomething) {
+	    	w.segments.clear();
+	    	w.segments.addAll(newSegments);
+	    }
+	    for (Segment ls : w.segments)
+	    	fixSegment(ls);
+    }
+
+	private void fixSegment(Segment ls) {
+		
+	    if (mergedNodes.containsKey(ls.from)) 
+	    	ls.from = mergedNodes.get(ls.from);
+	    
+	    if (mergedNodes.containsKey(ls.to))  
+	    	ls.to = mergedNodes.get(ls.to);
+	   
+    }
+
+	/**
+	 * @return Whether the nodes matches (in sense of "be mergable").
+	 */
+	private boolean match(Node n1, Node n2) {
+		if (n1.id == 0 || n2.id == 0)
+			return n1.coor.equalsEpsilon(n2.coor);
+		return n1.id == n2.id;
+	}
+
+	/**
+	 * @return Whether the segments matches (in sense of "be mergable").
+	 */
+	private boolean match(Segment ls1, Segment ls2) {
+		if (ls1.id == ls2.id && ls1.id != 0)
+			return true;
+		//if (ls1.id != 0 && ls2.id != 0)
+		//	return false;
+		if (ls1.incomplete || ls2.incomplete)
+			return false;
+		return match(ls1.from, ls2.from) && match(ls1.to, ls2.to);
+	}
+
+	/**
+	 * @return Whether the ways matches (in sense of "be mergable").
+	 */
+	private boolean match(Way w1, Way w2) {
+		if (w1.id == 0 || w2.id == 0) {
+			if (w1.segments.size() != w2.segments.size())
+				return false;
+			Iterator<Segment> it = w1.segments.iterator();
+			for (Segment ls : w2.segments)
+				if (!match(ls, it.next()))
+					return false;
+			return true;
+		}
+		return w1.id == w2.id;
+	}
+
+	/**
+	 * Merge the common parts of an osm primitive.
+	 * @param my The object, the information gets merged into
+	 * @param other The object, the information gets merged from
+	 */
+	private void mergeCommon(OsmPrimitive my, OsmPrimitive other) {
+		if (other.deleted)
+			my.delete(true);
+		if (my.id == 0 || !my.modified || other.modified) {
+			if (my.id == 0 && other.id != 0) {
+				my.id = other.id;
+				my.modified = other.modified; // match a new node
+			} else if (my.id != 0 && other.id != 0 && other.modified)
+				my.modified = true;
+		}
+		if (other.keys == null)
+			return;
+		if (my.keySet().containsAll(other.keys.keySet()))
+			return;
+		if (my.keys == null)
+			my.keys = other.keys;
+		else
+			my.keys.putAll(other.keys);
+		
+		my.modified = true;
+	}
+
+	/**
+	 * @return <code>true</code>, if no merge is needed or merge is performed already.
+	 */
+	private <P extends OsmPrimitive> boolean mergeAfterId(Map<P,P> merged, Collection<P> primitives, P other) {
+		for (P my : primitives) {
+			Date d1 = my.timestamp == null ? new Date(0) : my.timestamp;
+			Date d2 = other.timestamp == null ? new Date(0) : other.timestamp;
+			if (my.realEqual(other, false)) {
+				if (merged != null)
+					merged.put(other, my);
+				return true; // no merge needed.
+			}
+			if (my.realEqual(other, true)) {
+				// they differ in modified/timestamp combination only. Auto-resolve it.
+				if (merged != null)
+					merged.put(other, my);
+				if (d1.before(d2)) {
+					my.modified = other.modified;
+					my.timestamp = other.timestamp;
+				}
+				return true; // merge done.
+			}
+			if (my.id == other.id && my.id != 0) {
+				if (my instanceof Segment && ((Segment)my).incomplete)
+					return false; // merge always over an incomplete
+				if (my.modified && other.modified) {
+					conflicts.put(my, other);
+					if (merged != null)
+						merged.put(other, my);
+				} else if (!my.modified && !other.modified) {
+					if (d1.before(d2)) {
+						cloneFromExceptIncomplete(my, other);
+						if (merged != null)
+							merged.put(other, my);
+					}
+				} else if (other.modified) {
+					if (d1.after(d2)) {
+						conflicts.put(my, other);
+						if (merged != null)
+							merged.put(other, my);
+					} else {
+						cloneFromExceptIncomplete(my, other);
+						if (merged != null)
+							merged.put(other, my);
+					}
+				} else if (my.modified) {
+					if (d2.after(d1)) {
+						conflicts.put(my, other);
+						if (merged != null)
+							merged.put(other, my);
+					}
+				}
+				return true;
+			}
+		}
+		return false;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java	(revision 321)
@@ -0,0 +1,111 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+
+package org.openstreetmap.josm.data.osm.visitor;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.swing.Icon;
+import javax.swing.JLabel;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * Able to create a name and an icon for each data element.
+ * 
+ * @author imi
+ */
+public class NameVisitor implements Visitor {
+
+	/**
+	 * The name of the item class
+	 */
+	public String className;
+	/**
+	 * The name of this item.
+	 */
+	public String name;
+	/**
+	 * The icon of this item.
+	 */
+	public Icon icon;
+	
+	
+	/**
+	 * If the segment has a key named "name", its value is displayed. 
+	 * Otherwise, if it has "id", this is used. If none of these available, 
+	 * "(x1,y1) -> (x2,y2)" is displayed with the nodes coordinates.
+	 */
+	public void visit(Segment ls) {
+		name = ls.get("name");
+		if (name == null) {
+			if (ls.incomplete)
+				name = ls.id == 0 ? tr("new") : ls.id+" ("+tr("unknown")+")";
+			else
+				name = (ls.id==0?"":ls.id+" ")+"("+ls.from.coor.lat()+","+ls.from.coor.lon()+") -> ("+ls.to.coor.lat()+","+ls.to.coor.lon()+")";
+		}
+		addId(ls);
+		icon = ImageProvider.get("data", "segment");
+		trn("segment", "segments", 0); // no marktrn available
+		className = "segment";
+	}
+
+	/**
+	 * If the node has a name-key or id-key, this is displayed. If not, (lat,lon)
+	 * is displayed.
+	 */
+	public void visit(Node n) {
+		name = n.get("name");
+		if (name == null)
+			name = (n.id==0?"":""+n.id)+" ("+n.coor.lat()+","+n.coor.lon()+")";
+		addId(n);
+		icon = ImageProvider.get("data", "node");
+		trn("node", "nodes", 0); // no marktrn available
+		className = "node";
+	}
+
+	/**
+	 * If the way has a name-key or id-key, this is displayed. If not, (x nodes)
+	 * is displayed with x being the number of nodes in the way.
+	 */
+	public void visit(Way w) {
+		name = w.get("name");
+		if (name == null) name = w.get("ref");
+		if (name == null) {
+			AllNodesVisitor.getAllNodes(w.segments);
+			Set<Node> nodes = new HashSet<Node>();
+			for (Segment ls : w.segments) {
+				if (!ls.incomplete) {
+					nodes.add(ls.from);
+					nodes.add(ls.to);
+				}
+			}
+			String what = (w.get("highway") != null) ? "highway " : (w.get("railway") != null) ? "railway " : (w.get("waterway") != null) ? "waterway " : "";
+			name = what + trn("{0} node", "{0} nodes", nodes.size(), nodes.size());
+		}
+		if (w.isIncomplete())
+			name += " ("+tr("incomplete")+")";
+		addId(w);
+		icon = ImageProvider.get("data", "way");
+		trn("way", "ways", 0); // no marktrn available
+		className = "way";
+	}
+	
+	public JLabel toLabel() {
+		return new JLabel(name, icon, JLabel.HORIZONTAL);
+	}
+
+
+	private void addId(OsmPrimitive osm) {
+	    if (Main.pref.getBoolean("osm-primitives.showid"))
+			name += " (id: "+osm.id+")";
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/data/osm/visitor/SimplePaintVisitor.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/visitor/SimplePaintVisitor.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/osm/visitor/SimplePaintVisitor.java	(revision 321)
@@ -0,0 +1,241 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.osm.visitor;
+
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.Point;
+import java.awt.Rectangle;
+import java.awt.geom.GeneralPath;
+import java.awt.geom.Line2D;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.NavigatableComponent;
+import org.openstreetmap.josm.tools.ColorHelper;
+
+/**
+ * A visitor that paint a simple scheme of every primitive it visits to a 
+ * previous set graphic environment.
+ * 
+ * @author imi
+ */
+public class SimplePaintVisitor implements Visitor {
+
+	public final static Color darkerblue = new Color(0,0,96);
+	public final static Color darkblue = new Color(0,0,128);
+	public final static Color darkgreen = new Color(0,128,0);
+	
+	/**
+	 * The environment to paint to.
+	 */
+	protected Graphics g;
+	/**
+	 * MapView to get screen coordinates.
+	 */
+	protected NavigatableComponent nc;
+	
+	public boolean inactive;
+	
+	protected static final double PHI = Math.toRadians(20);
+
+	/**
+	 * Preferences
+	 */
+	protected Color inactiveColor;
+	protected Color selectedColor;
+	protected Color nodeColor;
+	protected Color segmentColor;
+	protected Color dfltWayColor;
+	protected Color incompleteColor;
+	protected Color backgroundColor;
+	protected boolean showDirectionArrow;
+	protected boolean showOrderNumber;
+	
+	/**
+	 * Draw subsequent segments of same color as one Path
+	 */
+	protected Color currentColor = null;
+	protected GeneralPath currrentPath = new GeneralPath();
+	
+	public void visitAll(DataSet data) {
+		inactiveColor = getPreferencesColor("inactive", Color.DARK_GRAY);
+		selectedColor = getPreferencesColor("selected", Color.WHITE);
+		nodeColor = getPreferencesColor("node", Color.RED);
+		segmentColor = getPreferencesColor("segment", darkgreen);
+		dfltWayColor = getPreferencesColor("way", darkblue);
+		incompleteColor = getPreferencesColor("incomplete way", darkerblue);
+		backgroundColor = getPreferencesColor("background", Color.BLACK);
+		showDirectionArrow = Main.pref.getBoolean("draw.segment.direction");
+		showOrderNumber = Main.pref.getBoolean("draw.segment.order_number");
+		
+		for (final OsmPrimitive osm : data.segments)
+			if (!osm.deleted && !osm.selected)
+				osm.visit(this);
+		for (final OsmPrimitive osm : data.ways)
+			if (!osm.deleted && !osm.selected)
+				osm.visit(this);
+		displaySegments(null);	// Flush segment cache before nodes
+		for (final OsmPrimitive osm : data.nodes)
+			if (!osm.deleted && !osm.selected)
+				osm.visit(this);
+		for (final OsmPrimitive osm : data.getSelected())
+			if (!osm.deleted)
+				osm.visit(this);
+		displaySegments(null);
+	}
+
+	/**
+	 * Draw a small rectangle. 
+	 * White if selected (as always) or red otherwise.
+	 * 
+	 * @param n The node to draw.
+	 */
+	public void visit(Node n) {
+		Color color = null;
+		if (inactive)
+			color = inactiveColor;
+		else if (n.selected)
+			color = selectedColor;
+		else
+			color = nodeColor;
+		drawNode(n, color);
+	}
+
+	/**
+	 * Draw just a line between the points.
+	 * White if selected (as always) or green otherwise.
+	 */
+	public void visit(Segment ls) {
+		Color color;
+		if (inactive)
+			color = inactiveColor;
+		else if (ls.selected)
+			color = selectedColor;
+		else
+			color = segmentColor;
+		drawSegment(ls, color, showDirectionArrow);
+	}
+
+	/**
+	 * Draw a darkblue line for all segments.
+	 * @param w The way to draw.
+	 */
+	public void visit(Way w) {
+		Color wayColor;
+		if (inactive)
+			wayColor = inactiveColor;
+		else {
+			wayColor = dfltWayColor;
+			for (Segment ls : w.segments) {
+				if (ls.incomplete) {
+					wayColor = incompleteColor;
+					break;
+				}
+			}
+		}
+
+		int orderNumber = 0;
+		for (Segment ls : w.segments) {
+			orderNumber++;
+			if (!ls.selected) // selected already in good color
+				drawSegment(ls, w.selected && !inactive ? selectedColor : wayColor, showDirectionArrow);
+			if (!ls.incomplete && showOrderNumber)
+				drawOrderNumber(ls, orderNumber);
+		}
+	}
+
+	/**
+	 * Draw an number of the order of the segment within the parents way
+	 */
+	protected void drawOrderNumber(Segment ls, int orderNumber) {
+		int strlen = (""+orderNumber).length();
+		Point p1 = nc.getPoint(ls.from.eastNorth);
+		Point p2 = nc.getPoint(ls.to.eastNorth);
+		int x = (p1.x+p2.x)/2 - 4*strlen;
+		int y = (p1.y+p2.y)/2 + 4;
+
+		Rectangle screen = g.getClipBounds();
+		if (screen.contains(x,y)) {
+			Color c = g.getColor();
+			g.setColor(backgroundColor);
+			g.fillRect(x-1, y-12, 8*strlen+1, 14);
+			g.setColor(c);
+			g.drawString(""+orderNumber, x, y);
+		}
+    }
+
+	/**
+	 * Draw the node as small rectangle with the given color.
+	 *
+	 * @param n		The node to draw.
+	 * @param color The color of the node.
+	 */
+	public void drawNode(Node n, Color color) {
+		Point p = nc.getPoint(n.eastNorth);
+		g.setColor(color);
+		Rectangle screen = g.getClipBounds();
+
+		if ( screen.contains(p.x, p.y) )
+			g.drawRect(p.x-1, p.y-1, 2, 2);
+	}
+
+	/**
+	 * Draw a line with the given color.
+	 */
+	protected void drawSegment(Segment ls, Color col, boolean showDirection) {
+		if (ls.incomplete)
+			return;
+		if (col != currentColor) {
+			displaySegments(col);
+		}
+		
+		Point p1 = nc.getPoint(ls.from.eastNorth);
+		Point p2 = nc.getPoint(ls.to.eastNorth);
+		
+		Rectangle screen = g.getClipBounds();		
+		Line2D line = new Line2D.Double(p1.x, p1.y, p2.x, p2.y);
+		if (screen.contains(p1.x, p1.y, p2.x, p2.y) || screen.intersectsLine(line))
+		{
+			currrentPath.moveTo(p1.x, p1.y);
+			currrentPath.lineTo(p2.x, p2.y);
+	
+			if (showDirection) {
+				double t = Math.atan2(p2.y-p1.y, p2.x-p1.x) + Math.PI;
+				currrentPath.lineTo((int)(p2.x + 10*Math.cos(t-PHI)), (int)(p2.y + 10*Math.sin(t-PHI)));
+				currrentPath.moveTo((int)(p2.x + 10*Math.cos(t+PHI)), (int)(p2.y + 10*Math.sin(t+PHI)));
+				currrentPath.lineTo(p2.x, p2.y);			}
+		}
+	}
+	
+	protected void displaySegments(Color newColor) {
+		if (currrentPath != null) {
+			g.setColor(currentColor);
+			((Graphics2D) g).draw(currrentPath);
+			currrentPath = new GeneralPath();
+			currentColor = newColor;
+		}
+	}
+
+	public static Color getPreferencesColor(String colName, Color def) {
+		String colStr = Main.pref.get("color."+colName);
+		if (colStr.equals("")) {
+			Main.pref.put("color."+colName, ColorHelper.color2html(def));
+			return def;
+		}
+		return ColorHelper.html2color(colStr);
+	}
+
+
+	public void setGraphics(Graphics g) {
+    	this.g = g;
+    }
+
+	public void setNavigatableComponent(NavigatableComponent nc) {
+    	this.nc = nc;
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/data/osm/visitor/Visitor.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/visitor/Visitor.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/osm/visitor/Visitor.java	(revision 321)
@@ -0,0 +1,18 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.osm.visitor;
+
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+
+/**
+ * Implementation of the visitor scheme. Every OsmPrimitive can be visited by
+ * several different visitors.
+ * 
+ * @author imi
+ */
+public interface Visitor {
+	void visit(Node n);
+	void visit(Segment s);
+	void visit(Way w);
+}
Index: /trunk/src/org/openstreetmap/josm/data/projection/Epsg4326.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/projection/Epsg4326.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/projection/Epsg4326.java	(revision 321)
@@ -0,0 +1,33 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.projection;
+
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.coor.EastNorth;
+
+/**
+ * Directly use latitude / longitude values as x/y.
+ *
+ * @author imi
+ */
+public class Epsg4326 implements Projection {
+
+	public EastNorth latlon2eastNorth(LatLon p) {
+		return new EastNorth(p.lon(), p.lat());
+	}
+
+	public LatLon eastNorth2latlon(EastNorth p) {
+		return new LatLon(p.north(), p.east());
+	}
+
+	@Override public String toString() {
+		return "EPSG:4326";
+	}
+
+    public String getCacheDirectoryName() {
+        return "epsg4326";
+    }
+
+	public double scaleFactor() {
+	    return 1.0/360;
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/data/projection/Mercator.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/projection/Mercator.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/projection/Mercator.java	(revision 321)
@@ -0,0 +1,41 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.projection;
+
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.coor.LatLon;
+
+/**
+ * Implement Mercator Projection code, coded after documentation
+ * from wikipedia.
+ * 
+ * The center of the mercator projection is always the 0 grad 
+ * coordinate.
+ * 
+ * @author imi
+ */
+public class Mercator implements Projection {
+
+	public EastNorth latlon2eastNorth(LatLon p) {
+		return new EastNorth(
+			p.lon()*Math.PI/180,
+			Math.log(Math.tan(Math.PI/4+p.lat()*Math.PI/360)));
+	}
+
+	public LatLon eastNorth2latlon(EastNorth p) {
+		return new LatLon(
+			Math.atan(Math.sinh(p.north()))*180/Math.PI,
+			p.east()*180/Math.PI);
+	}
+
+	@Override public String toString() {
+		return "Mercator";
+	}
+
+    public String getCacheDirectoryName() {
+        return "mercator";
+    }
+
+	public double scaleFactor() {
+	    return 1/Math.PI/2;
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/data/projection/Projection.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/projection/Projection.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/data/projection/Projection.java	(revision 321)
@@ -0,0 +1,56 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.projection;
+
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.coor.LatLon;
+
+/**
+ * Classes subclass this are able to convert lat/lon values to 
+ * planear screen coordinates.
+ * 
+ * @author imi
+ */
+public interface Projection {
+
+	public static final double MAX_LAT = 85.05112877980659; // Mercator squares the world
+	public static final double MAX_LON = 180;
+	public static final double MAX_SERVER_PRECISION = 1e12;
+
+	/**
+	 * List of all available Projections.
+	 */
+	public static Projection[] allProjections = new Projection[]{
+		new Epsg4326(),
+		new Mercator()
+	};
+	
+	/**
+	 * Convert from lat/lon to northing/easting. 
+	 * 
+	 * @param p		The geo point to convert. x/y members of the point are filled.
+	 */
+	EastNorth latlon2eastNorth(LatLon p);
+	
+	/**
+	 * Convert from norting/easting to lat/lon.
+	 * 
+	 * @param p		The geo point to convert. lat/lon members of the point are filled.
+	 */
+	LatLon eastNorth2latlon(EastNorth p);
+
+	/**
+	 * Describe the projection converter in one or two words.
+	 */
+	String toString();
+    
+    /**
+     * Get a filename compatible string (for the cache directory)
+     */
+    String getCacheDirectoryName();
+    
+    /**
+     * The factor to multiply with an easting coordinate to get from "easting 
+     * units per pixel" to "meters per pixel"
+     */
+    double scaleFactor();
+}
Index: /trunk/src/org/openstreetmap/josm/gui/BookmarkList.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/BookmarkList.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/BookmarkList.java	(revision 321)
@@ -0,0 +1,60 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.io.IOException;
+import java.util.Collection;
+import java.util.LinkedList;
+
+import javax.swing.DefaultListModel;
+import javax.swing.JList;
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.Preferences;
+
+/**
+ * List class that read and save its content from the bookmark file.
+ * @author imi
+ */
+public class BookmarkList extends JList {
+
+	/**
+	 * Create a bookmark list as well as the Buttons add and remove.
+	 */
+	public BookmarkList() {
+		setModel(new DefaultListModel());
+		load();
+		setVisibleRowCount(7);
+	}
+
+	/**
+	 * Loads the bookmarks from file.
+	 */
+	public void load() {
+		DefaultListModel model = (DefaultListModel)getModel();
+		model.removeAllElements();
+		try {
+			for (Preferences.Bookmark b : Main.pref.loadBookmarks())
+				model.addElement(b);
+		} catch (IOException e) {
+			e.printStackTrace();
+			JOptionPane.showMessageDialog(Main.parent, tr("Could not read bookmarks.")+"\n"+e.getMessage());
+		}
+	}
+
+	/**
+	 * Save all bookmarks to the preferences file
+	 */
+	public void save() {
+		try {
+			Collection<Preferences.Bookmark> bookmarks = new LinkedList<Preferences.Bookmark>();
+			for (Object o : ((DefaultListModel)getModel()).toArray())
+				bookmarks.add((Preferences.Bookmark)o);
+			Main.pref.saveBookmarks(bookmarks);
+		} catch (IOException e) {
+			JOptionPane.showMessageDialog(Main.parent,tr("Could not write bookmark.")+"\n"+e.getMessage());
+		}
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/ConflictResolver.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/ConflictResolver.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/ConflictResolver.java	(revision 321)
@@ -0,0 +1,261 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
+
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeSet;
+import java.util.Map.Entry;
+
+import javax.swing.AbstractAction;
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.ListSelectionModel;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+import javax.swing.event.TableModelListener;
+import javax.swing.table.DefaultTableCellRenderer;
+import javax.swing.table.TableCellRenderer;
+import javax.swing.table.TableModel;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.conflict.ConflictItem;
+import org.openstreetmap.josm.data.conflict.DeleteConflict;
+import org.openstreetmap.josm.data.conflict.FromConflict;
+import org.openstreetmap.josm.data.conflict.PositionConflict;
+import org.openstreetmap.josm.data.conflict.PropertyConflict;
+import org.openstreetmap.josm.data.conflict.SegmentConflict;
+import org.openstreetmap.josm.data.conflict.ToConflict;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.tools.GBC;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * A panel which implement the conflict resolving of a set of primitive-pairs. There will be
+ * three tables in the screen, one for each both sides and one resulting table. The user can
+ * move items from either one of the sides ("my" and "their") to the resulting table.
+ * 
+ * @author Imi
+ */
+public class ConflictResolver extends JPanel {
+
+	public static enum Resolution {MY, THEIR}
+
+	private final class ConflictTableModel implements TableModel {
+		private final Resolution resolution;
+		public ConflictTableModel(Resolution resolution) {
+			this.resolution = resolution;
+		}
+
+		public int getRowCount() {
+			return conflicts.size();
+		}
+
+		public Object getValueAt(int rowIndex, int columnIndex) {
+			ConflictItem ci = conflicts.get(rowIndex);
+			if (columnIndex == 0)
+				return ci.key();
+			Resolution r = resolution == null ? ci.resolution : resolution;
+			if (r == null)
+				return "<html><i>???</i></html>";
+			JLabel l = new JLabel(r == Resolution.MY ? ci.my : ci.their);
+			if (ci.resolution == resolution && resolution != null)
+				l.setFont(l.getFont().deriveFont(Font.BOLD));
+			return l;
+		}
+
+		public String getColumnName(int columnIndex) {return columnIndex == 0 ? tr("Key") : tr("Value");}
+		public int getColumnCount() {return 2;}
+		public boolean isCellEditable(int row, int column) {return false;}
+		public Class<?> getColumnClass(int columnIndex) {return Object.class;}
+
+		public void addTableModelListener(TableModelListener l) {}
+		public void removeTableModelListener(TableModelListener l) {}
+		public void setValueAt(Object aValue, int rowIndex, int columnIndex) {}
+	}
+
+	private final class DblClickListener extends MouseAdapter {
+		private final Resolution resolution;
+		public DblClickListener(Resolution resolution) {
+			this.resolution = resolution;
+		}
+		@Override public void mouseClicked(MouseEvent e) {
+			if (e.getClickCount() >= 2) {
+				int sel = ((JTable)e.getSource()).getSelectedRow();
+				if (sel == -1)
+					return;
+				ConflictResolver.this.conflicts.get(sel).resolution = resolution;
+				repaint();
+			}
+		}
+	}
+	private final class ResolveAction extends AbstractAction {
+		private final Resolution resolution;
+		public ResolveAction(String name, Resolution resolution) {
+			super(null, ImageProvider.get("dialogs", name));
+			this.resolution = resolution;
+		}
+		public void actionPerformed(ActionEvent e) {
+			int sel = myTable.getSelectedRow();
+			if (sel == -1)
+				return;
+			conflicts.get(sel).resolution = resolution;
+			if (sel == myTable.getRowCount()-1)
+				myTable.clearSelection();
+			else
+				myTable.getSelectionModel().setSelectionInterval(sel+1, sel+1);
+			repaint();
+		}
+	}
+
+	public final List<ConflictItem> conflicts = new ArrayList<ConflictItem>();
+
+	private final ConflictTableModel my = new ConflictTableModel(Resolution.MY);
+	private final JTable myTable;
+	private final ConflictTableModel their = new ConflictTableModel(Resolution.THEIR);
+	private final JTable theirTable;
+	private final ConflictTableModel resolve = new ConflictTableModel(null);
+	private final JTable resolveTable;
+
+	
+	public ConflictResolver(Map<OsmPrimitive, OsmPrimitive> conflicts) {
+		super(new GridBagLayout());
+		Collection<ConflictItem> possibleConflicts = new ArrayList<ConflictItem>();
+		possibleConflicts.add(new DeleteConflict());
+		possibleConflicts.add(new PositionConflict());
+		possibleConflicts.add(new FromConflict());
+		possibleConflicts.add(new ToConflict());
+		possibleConflicts.add(new SegmentConflict());
+		TreeSet<String> allkeys = new TreeSet<String>();
+		for (Entry<OsmPrimitive, OsmPrimitive> e : conflicts.entrySet()) {
+			allkeys.addAll(e.getKey().keySet());
+			allkeys.addAll(e.getValue().keySet());
+		}
+		for (String s : allkeys)
+			possibleConflicts.add(new PropertyConflict(s));
+		
+		for (Entry<OsmPrimitive, OsmPrimitive> e : conflicts.entrySet()) {
+			for (Iterator<ConflictItem> it = possibleConflicts.iterator(); it.hasNext();) {
+				ConflictItem ci = it.next();
+				if (ci.hasConflict(e.getKey(), e.getValue())) {
+					ci.initialize(conflicts);
+					this.conflicts.add(ci);
+					it.remove();
+				}
+			}
+		}
+		
+		if (this.conflicts.isEmpty()) {
+			JOptionPane.showMessageDialog(Main.parent,
+					"The ConflictResolver and the Merger disagree about conflicts in your dataset.\n"+
+					"Of course, this is a bug.\n"+
+					"The bug is very old, but unfortunatly, Imi (programmer) was not able to catch it.\n"+
+					"If you know exactly what bounding boxes you downloaded (bookmarks?) and/or what\n"+
+					"files you opened (have them ready?) to display this message again, pretty please\n"+
+					"inform Imi at josm@eigenheimstrasse.de about the details.\n"+
+					"Thanks.");
+			//throw new RuntimeException("No conflicts but in conflict list:\n"+Arrays.toString(conflicts.entrySet().toArray()));
+		}
+
+		// have to initialize the JTables here and not in the declaration, because its constructor
+		// may access this.conflicts (indirectly)
+		myTable = new JTable(my);
+		theirTable = new JTable(their);
+		resolveTable = new JTable(resolve);
+		
+		myTable.setPreferredScrollableViewportSize(new Dimension(250,70));
+		theirTable.setPreferredScrollableViewportSize(new Dimension(250,70));
+		resolveTable.setPreferredScrollableViewportSize(new Dimension(250,70));
+
+		TableCellRenderer renderer = new DefaultTableCellRenderer(){
+			final Font defFont = new JLabel().getFont();
+			@Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
+				JLabel c = (JLabel)super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
+				c.setIcon(null);
+				c.setFont(defFont);
+				if (value instanceof JLabel) {
+					JLabel l = (JLabel)value;
+					String text = l.getText();
+					c.setText(text);
+					c.setFont(l.getFont());
+					if (text.startsWith("<html>") && l.getFont().isBold())
+						c.setText("<html>"+"<b>"+text.substring(6, text.length()-12));
+				} else {
+					String s = value.toString();
+					int i = s.indexOf('|');
+					if (i != -1) {
+						c.setIcon(ImageProvider.get("data", s.substring(0,i)));
+						c.setText(s.substring(i+1));
+					}
+				}
+				return c;
+			}
+		};
+		myTable.setDefaultRenderer(Object.class, renderer);
+		theirTable.setDefaultRenderer(Object.class, renderer);
+		resolveTable.setDefaultRenderer(Object.class, renderer);
+
+		myTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+		theirTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+		resolveTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+		ListSelectionListener selListener = new ListSelectionListener(){
+			public void valueChanged(ListSelectionEvent e) {
+				if (((ListSelectionModel)e.getSource()).isSelectionEmpty()) {
+					myTable.clearSelection();
+					theirTable.clearSelection();
+					resolveTable.clearSelection();
+				} else {
+					int i = ((ListSelectionModel)e.getSource()).getMinSelectionIndex();
+					myTable.scrollRectToVisible(myTable.getCellRect(i, 0, true));
+					myTable.getSelectionModel().setSelectionInterval(i, i);
+					theirTable.scrollRectToVisible(theirTable.getCellRect(i, 0, true));
+					theirTable.getSelectionModel().setSelectionInterval(i, i);
+					resolveTable.scrollRectToVisible(resolveTable.getCellRect(i, 0, true));
+					resolveTable.getSelectionModel().setSelectionInterval(i, i);
+				}
+			}
+		};
+		myTable.getSelectionModel().addListSelectionListener(selListener);
+		theirTable.getSelectionModel().addListSelectionListener(selListener);
+		resolveTable.getSelectionModel().addListSelectionListener(selListener);
+		myTable.getSelectionModel().setSelectionInterval(0,0);
+
+		myTable.addMouseListener(new DblClickListener(Resolution.MY));
+		theirTable.addMouseListener(new DblClickListener(Resolution.THEIR));
+		resolveTable.addMouseListener(new DblClickListener(null));
+
+		add(new JLabel(trn("{0} object has conflicts:","{0} objects have conflicts:",conflicts.size(),conflicts.size())), GBC.eol().insets(0,0,0,10));
+
+		JPanel p = new JPanel(new GridBagLayout());
+		p.add(new JLabel(tr("my version:")), GBC.eol());
+		p.add(new JScrollPane(myTable), GBC.eol().fill(GBC.BOTH));
+		p.add(new JButton(new ResolveAction("down", Resolution.MY)), GBC.eol().anchor(GBC.CENTER).insets(0,5,0,0));
+		add(p, GBC.std().insets(0,0,5,0));
+
+		p = new JPanel(new GridBagLayout());
+		p.add(new JLabel(tr("their version:")), GBC.eol());
+		p.add(new JScrollPane(theirTable), GBC.eol().fill(GBC.BOTH));
+		p.add(new JButton(new ResolveAction("down", Resolution.THEIR)), GBC.eol().anchor(GBC.CENTER).insets(0,5,0,0));
+		add(p, GBC.eop().insets(5,0,0,0));
+
+		add(new JButton(new ResolveAction("up", null)), GBC.eol().anchor(GBC.CENTER));
+		add(new JLabel(tr("resolved version:")), GBC.eol().insets(0,5,0,0));
+		add(new JScrollPane(resolveTable), GBC.eol().anchor(GBC.CENTER).fill(GBC.BOTH));
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/GettingStarted.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/GettingStarted.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/GettingStarted.java	(revision 321)
@@ -0,0 +1,93 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JButton;
+import javax.swing.JEditorPane;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.event.HyperlinkEvent;
+import javax.swing.event.HyperlinkListener;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.tools.GBC;
+import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.OpenBrowser;
+
+public class GettingStarted extends JPanel implements ActionListener {
+
+	private JPanel panel;
+
+	public class LinkLabel extends JEditorPane implements HyperlinkListener {
+		private String action;
+		public LinkLabel(String text, String action) {
+			this.action = action;
+			String normalized = text.replaceAll("\\[([^\\]]*)\\]", "$1");
+			String link = "<html><h2>"+text.replaceAll("\\[([^\\]]*)\\]", "<a href='"+action+"'>$1</a>")+"</h2></html>";
+			setContentType("text/html");
+			setText(link);
+			setToolTipText(normalized);
+			setEditable(false);
+			setOpaque(false);
+			addHyperlinkListener(this);
+        }
+		public void hyperlinkUpdate(HyperlinkEvent e) {
+			if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
+				actionPerformed(new ActionEvent(e.getSource(), 0, action));
+        }
+    }
+
+	public GettingStarted() {
+		super(new GridBagLayout());
+		
+		panel = new JPanel(new GridBagLayout());
+		
+		addGettingStarted();
+		addGettingHelp();
+		
+		panel.add(GBC.glue(0,140), GBC.eol());
+		add(panel);
+    }
+
+	public void addGettingStarted() {
+		addCategory(tr("Getting Started"));
+		addLine("download",tr("[Download] some data from the OSM server"));
+	}
+	
+	public void addGettingHelp() {
+	    addCategory(tr("Getting Help"));
+		addLine("help",tr("Open the [online help] (english only)"));
+		addLine("tutorial",tr("Watch some [tutorial videos]"));
+		addLine("mailinglist",tr("Join the newbie [mailing list]"));
+    }
+
+	public void addCategory(String category) {
+	    panel.add(new JLabel("<html><h1>"+category+"</h1></html>"), GBC.eop().fill(GBC.HORIZONTAL).insets(0,20,0,0));
+    }
+
+	public void addLine(String action, String text) {
+	    JButton button = new JButton(ImageProvider.get("getting_started"));
+        button.setBorder(null);
+        button.addActionListener(this);
+        button.setActionCommand(action);
+		panel.add(button, GBC.std().insets(40,0,15,0));
+		panel.add(new LinkLabel(text,action),GBC.eol());
+    }
+
+
+	public void actionPerformed(ActionEvent e) {
+		if (e.getActionCommand().equals("download"))
+			Main.main.menu.download.actionPerformed(e);
+		else if (e.getActionCommand().equals("help"))
+			Main.main.menu.help.actionPerformed(e);
+		else if (e.getActionCommand().equals("tutorial"))
+			OpenBrowser.displayUrl("http://josm.openstreetmap.de/wiki/TutorialVideos");
+		else if (e.getActionCommand().equals("mailinglist"))
+			OpenBrowser.displayUrl("mailto:newbies-subscribe@openstreetmap.org?subject=subscribe");
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/gui/IconToggleButton.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/IconToggleButton.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/IconToggleButton.java	(revision 321)
@@ -0,0 +1,48 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui;
+
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+
+import javax.swing.Action;
+import javax.swing.JToggleButton;
+
+/**
+ * Just a toggle button, with smaller border and icon only to display in
+ * MapFrame toolbars.
+ *
+ * @author imi
+ */
+public class IconToggleButton extends JToggleButton implements PropertyChangeListener {
+
+	public boolean groupbutton;
+
+	/**
+	 * Construct the toggle button with the given action.
+	 */
+	public IconToggleButton(Action action) {
+		super(action);
+		setText(null);
+
+		Object o = action.getValue(Action.SHORT_DESCRIPTION);
+		if (o != null)
+			setToolTipText(o.toString());
+
+		action.addPropertyChangeListener(this);
+		
+		addMouseListener(new MouseAdapter(){
+			@Override public void mousePressed(MouseEvent e) {
+				groupbutton = e.getX() > getWidth()/2 && e.getY() > getHeight()/2;
+            }
+		});
+	}
+
+	public void propertyChange(PropertyChangeEvent evt) {
+		if (evt.getPropertyName().equals("active")) {
+			setSelected((Boolean)evt.getNewValue());
+			requestFocusInWindow();
+		}
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/MainApplet.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/MainApplet.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/MainApplet.java	(revision 321)
@@ -0,0 +1,120 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.Map;
+
+import javax.swing.JApplet;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.JosmAction;
+import org.openstreetmap.josm.data.ServerSidePreferences;
+import org.openstreetmap.josm.tools.GBC;
+
+public class MainApplet extends JApplet {
+
+	public static final class UploadPreferencesAction extends JosmAction {
+		public UploadPreferencesAction() {
+			super(tr("Upload Preferences"), "upload-preferences", tr("Upload the current preferences to the server"), KeyEvent.VK_U, KeyEvent.CTRL_DOWN_MASK | KeyEvent.SHIFT_DOWN_MASK, true);
+        }
+	    public void actionPerformed(ActionEvent e) {
+	    	((ServerSidePreferences)Main.pref).upload();
+	    }
+    }
+
+    private final class MainCaller extends Main {
+		private MainCaller() {
+			setContentPane(contentPane);
+			setJMenuBar(menu);
+			setBounds(bounds);
+		}
+	}
+
+	private final static String[][] paramInfo = {
+		{"username", tr("string"), tr("Name of the user.")},
+		{"password", tr("string"), tr("OSM Password.")},
+		{"geometry", tr("string"), tr("Resize the applet to the given geometry (format: WIDTHxHEIGHT)")},
+		{"download", tr("string;string;..."), tr("Download each. Can be x1,y1,x2,y2 an url containing lat=y&lon=x&zoom=z or a filename")},
+		{"downloadgps", tr("string;string;..."), tr("Download each as raw gps. Can be x1,y1,x2,y2 an url containing lat=y&lon=x&zoom=z or a filename")},
+		{"selection", tr("string;string;..."), tr("Add each to the initial selection. Can be a google-like search string or an url which returns osm-xml")},
+		{"reset-preferences", tr("any"),tr("If specified, reset the configuration instead of reading it.")}
+	};
+
+	private Map<String, Collection<String>> args = new HashMap<String, Collection<String>>();
+	private UploadPreferencesAction uploadPreferences = new UploadPreferencesAction(); 
+
+	@Override public String[][] getParameterInfo() {
+		return paramInfo;
+	}
+
+	@Override public void init() {
+		for (String[] s : paramInfo) {
+			Collection<String> p = readParameter(s[0], args.get(s[0]));
+			if (p != null)
+				args.put(s[0], p);
+		}
+		if (!args.containsKey("geometry") && getParameter("width") != null && getParameter("height") != null) {
+			args.put("geometry", Arrays.asList(new String[]{getParameter("width")+"x"+getParameter("height")}));
+		}
+	}
+
+	@Override public void start() {
+		String username = args.containsKey("username") ? args.get("username").iterator().next() : null;
+		String password = args.containsKey("password") ? args.get("password").iterator().next() : null;
+		if (username == null || password == null) {
+			JPanel p = new JPanel(new GridBagLayout());
+			p.add(new JLabel(tr("Username")), GBC.std().insets(0,0,20,0));
+			JTextField user = new JTextField(username == null ? "" : username);
+			p.add(user, GBC.eol().fill(GBC.HORIZONTAL));
+			p.add(new JLabel(tr("Password")), GBC.std().insets(0,0,20,0));
+			JPasswordField pass = new JPasswordField(password == null ? "" : password);
+			p.add(pass, GBC.eol().fill(GBC.HORIZONTAL));
+			JOptionPane.showMessageDialog(null, p);
+			username = user.getText();
+			password = new String(pass.getPassword());
+			args.put("password", Arrays.asList(new String[]{password}));
+		}
+
+		Main.applet = true;
+		Main.pref = new ServerSidePreferences(getCodeBase());
+		((ServerSidePreferences)Main.pref).download(username, password);
+
+		Main.preConstructorInit(args);
+		Main.parent = this;
+		new MainCaller().postConstructorProcessCmdLine(args);
+		
+		MainMenu m = Main.main.menu; // shortcut
+
+		// remove offending stuff from JOSM (that would break the SecurityManager)
+		m.remove(m.fileMenu);
+		m.editMenu.add(uploadPreferences);
+		m.open.setEnabled(false);
+		m.exit.setEnabled(false);
+		m.save.setEnabled(false);
+		m.saveAs.setEnabled(false);
+		m.gpxExport.setEnabled(false);
+	}
+
+	private Collection<String> readParameter(String s, Collection<String> v) {
+		String param = getParameter(s);
+		if (param != null) {
+			if (v == null)
+				v = new LinkedList<String>();
+			v.addAll(Arrays.asList(param.split(";")));
+		}
+		return v;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/MainApplication.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 321)
@@ -0,0 +1,163 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+//Licence: GPL
+package org.openstreetmap.josm.gui;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.EventQueue;
+import java.awt.Toolkit;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.io.File;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import javax.swing.JFrame;
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.tools.BugReportExceptionHandler;
+/**
+ * Main window class application.
+ *
+ * @author imi
+ */
+public class MainApplication extends Main {
+	/**
+	 * Construct an main frame, ready sized and operating. Does not
+	 * display the frame.
+	 */
+	public MainApplication(JFrame mainFrame) {
+		mainFrame.setContentPane(contentPane);
+		mainFrame.setJMenuBar(menu);
+		mainFrame.setBounds(bounds);
+		mainFrame.addWindowListener(new WindowAdapter(){
+			@Override public void windowClosing(final WindowEvent arg0) {
+				if (Main.breakBecauseUnsavedChanges())
+					return;
+				System.exit(0);
+			}
+		});
+		mainFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
+	}
+
+	/**
+	 * Main application Startup
+	 */
+	@SuppressWarnings("deprecation")
+	public static void main(final String[] argArray) {
+		/////////////////////////////////////////////////////////////////////////
+		//                        TO ALL TRANSLATORS
+		/////////////////////////////////////////////////////////////////////////
+		// Do not translate the early strings below until the locale is set up.
+		// (By the eager loaded plugins)
+		//
+		// These strings cannot be translated. That's live. Really. Sorry.
+		//
+		//                                                                 Imi.
+		/////////////////////////////////////////////////////////////////////////
+
+		Thread.setDefaultUncaughtExceptionHandler(new BugReportExceptionHandler());
+
+		// construct argument table
+		List<String> argList = Arrays.asList(argArray);
+		final Map<String, Collection<String>> args = new HashMap<String, Collection<String>>();
+		for (String arg : argArray) {
+			if (!arg.startsWith("--"))
+				arg = "--download="+arg;
+			int i = arg.indexOf('=');
+			String key = i == -1 ? arg.substring(2) : arg.substring(2,i);
+			String value = i == -1 ? "" : arg.substring(i+1);
+			Collection<String> v = args.get(key);
+			if (v == null)
+				v = new LinkedList<String>();
+			v.add(value);
+			args.put(key, v);
+		}
+
+		// get the preferences.
+		final File prefDir = new File(Main.pref.getPreferencesDir());
+
+		// check if preferences directory has moved (TODO: Update code. Remove this after some time)
+		File oldPrefDir = new File(System.getProperty("user.home")+"/.josm");
+		if (!prefDir.isDirectory() && oldPrefDir.isDirectory()) {
+			if (oldPrefDir.renameTo(prefDir)) {
+				// do not translate this
+				JOptionPane.showMessageDialog(null, "The preference directory has been moved to "+prefDir);
+			} else {
+				JOptionPane.showMessageDialog(null, "The preference directory location has changed. Please move "+oldPrefDir+" to "+prefDir);
+			}
+		}
+
+		if (prefDir.exists() && !prefDir.isDirectory()) {
+			JOptionPane.showMessageDialog(null, "Cannot open preferences directory: "+Main.pref.getPreferencesDir());
+			return;
+		}
+		if (!prefDir.exists())
+			prefDir.mkdirs();
+		try {
+			if (args.containsKey("reset-preferences")) {
+				Main.pref.resetToDefault();
+			} else {
+				Main.pref.load();
+			}
+		} catch (final IOException e1) {
+			e1.printStackTrace();
+			JOptionPane.showMessageDialog(null, "Preferences could not be loaded. Writing default preference file to "+pref.getPreferencesDir()+"preferences");
+			Main.pref.resetToDefault();
+		}
+
+		// load the early plugins
+		Main.loadPlugins(true);
+
+		if (argList.contains("--help") || argList.contains("-?") || argList.contains("-h")) {
+			System.out.println(tr("Java OpenStreetMap Editor")+"\n\n"+
+					tr("usage")+":\n"+
+					"\tjava -jar josm.jar <option> <option> <option>...\n\n"+
+					tr("options")+":\n"+
+					"\t--help|-?|-h                              "+tr("Show this help")+"\n"+
+					"\t--geometry=widthxheight(+|-)x(+|-)y       "+tr("Standard unix geometry argument")+"\n"+
+					"\t[--download=]minlat,minlon,maxlat,maxlon  "+tr("Download the bounding box")+"\n"+
+					"\t[--download=]<url>                        "+tr("Download the location at the url (with lat=x&lon=y&zoom=z)")+"\n"+
+					"\t[--download=]<filename>                   "+tr("Open file (as raw gps, if .gpx or .csv)")+"\n"+
+					"\t--downloadgps=minlat,minlon,maxlat,maxlon "+tr("Download the bounding box as raw gps")+"\n"+
+					"\t--selection=<searchstring>                "+tr("Select with the given search")+"\n"+
+					"\t--no-fullscreen                           "+tr("Don't launch in fullscreen mode")+"\n"+
+					"\t--reset-preferences                       "+tr("Reset the preferences to default")+"\n\n"+
+					"\t--language=<language>                     "+tr("Set the language. Example: ")+"\n\n"+
+					tr("examples")+":\n"+
+					"\tjava -jar josm.jar track1.gpx track2.gpx london.osm\n"+
+					"\tjava -jar josm.jar http://www.openstreetmap.org/index.html?lat=43.2&lon=11.1&zoom=13\n"+
+					"\tjava -jar josm.jar london.osm --selection=http://www.ostertag.name/osm/OSM_errors_node-duplicate.xml\n"+
+					"\tjava -jar josm.jar 43.2,11.1,43.4,11.4\n\n"+
+
+					tr("Parameters are read in the order they are specified, so make sure you load\n"+
+					"some data before --selection")+"\n\n"+
+					tr("Instead of --download=<bbox> you may specify osm://<bbox>\n"));
+			System.exit(0);
+		}
+
+		preConstructorInit(args);
+		JFrame mainFrame = new JFrame(tr("Java OpenStreetMap - Editor"));
+		Main.parent = mainFrame;
+		final Main main = new MainApplication(mainFrame);
+		Main.loadPlugins(false);
+		toolbar.refreshToolbarControl();
+
+		mainFrame.setVisible(true);
+
+		if (!args.containsKey("no-fullscreen") && !args.containsKey("geometry") && Toolkit.getDefaultToolkit().isFrameStateSupported(JFrame.MAXIMIZED_BOTH))
+			mainFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);
+
+		EventQueue.invokeLater(new Runnable(){
+			public void run() {
+				main.postConstructorProcessCmdLine(args);
+			}
+		});
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/MainMenu.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/MainMenu.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/MainMenu.java	(revision 321)
@@ -0,0 +1,149 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.Action;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+
+import org.openstreetmap.josm.actions.AboutAction;
+import org.openstreetmap.josm.actions.AlignInCircleAction;
+import org.openstreetmap.josm.actions.AlignInLineAction;
+import org.openstreetmap.josm.actions.AutoScaleAction;
+import org.openstreetmap.josm.actions.CombineWayAction;
+import org.openstreetmap.josm.actions.DownloadAction;
+import org.openstreetmap.josm.actions.DownloadIncompleteAction;
+import org.openstreetmap.josm.actions.ExitAction;
+import org.openstreetmap.josm.actions.GpxExportAction;
+import org.openstreetmap.josm.actions.HelpAction;
+import org.openstreetmap.josm.actions.NewAction;
+import org.openstreetmap.josm.actions.OpenAction;
+import org.openstreetmap.josm.actions.PreferencesAction;
+import org.openstreetmap.josm.actions.RedoAction;
+import org.openstreetmap.josm.actions.ReorderAction;
+import org.openstreetmap.josm.actions.ReverseSegmentAction;
+import org.openstreetmap.josm.actions.SaveAction;
+import org.openstreetmap.josm.actions.SaveAsAction;
+import org.openstreetmap.josm.actions.SelectAllAction;
+import org.openstreetmap.josm.actions.SplitWayAction;
+import org.openstreetmap.josm.actions.UndoAction;
+import org.openstreetmap.josm.actions.UnselectAllAction;
+import org.openstreetmap.josm.actions.UploadAction;
+import org.openstreetmap.josm.actions.search.SearchAction;
+import org.openstreetmap.josm.data.DataSetChecker;
+
+/**
+ * This is the JOSM main menu bar. It is overwritten to initialize itself and provide
+ * all menu entries as member variables (sort of collect them).
+ *
+ * It also provides possibilities to attach new menu entries (used by plugins).
+ *
+ * @author Immanuel.Scholz
+ */
+public class MainMenu extends JMenuBar {
+
+	public final UndoAction undo = new UndoAction();
+	public final RedoAction redo = new RedoAction();
+	public final Action selectAll = new SelectAllAction();
+	public final Action unselectAll = new UnselectAllAction();
+	public final Action search = new SearchAction();
+	public final NewAction newAction = new NewAction();
+	public final OpenAction open = new OpenAction();
+	public final DownloadAction download = new DownloadAction();
+	public final Action reverseSegment = new ReverseSegmentAction();
+	public final Action splitWay = new SplitWayAction();
+	public final Action combineWay = new CombineWayAction();
+	public final Action alignInCircle = new AlignInCircleAction();
+	public final Action alignInLine = new AlignInLineAction();
+	public final Action reorder = new ReorderAction();
+	public final Action upload = new UploadAction();
+	public final Action save = new SaveAction(null);
+	public final Action saveAs = new SaveAsAction(null);
+	public final Action gpxExport = new GpxExportAction(null);
+	public final Action exit = new ExitAction();
+	public final Action preferences = new PreferencesAction();
+	public final HelpAction help = new HelpAction();
+	public final Action about = new AboutAction();
+	public final DownloadIncompleteAction downloadIncomplete = new DownloadIncompleteAction();
+	
+	public final JMenu layerMenu = new JMenu(tr("Layer"));
+	public final JMenu editMenu = new JMenu(tr("Edit"));
+	public final JMenu viewMenu = new JMenu(tr("View"));
+	public final JMenu helpMenu = new JMenu(tr("Help"));
+	public final JMenu fileMenu = new JMenu(tr("Files"));
+	public final JMenu connectionMenu = new JMenu(tr("Connection"));
+	public final JMenu toolsMenu = new JMenu(tr("Tools"));
+
+	public final JMenu zoomToMenu = new JMenu(tr("Zoom To"));
+
+
+	public MainMenu() {
+		fileMenu.setMnemonic('F');
+		fileMenu.add(newAction);
+		fileMenu.add(open);
+		fileMenu.add(save);
+		fileMenu.add(saveAs);
+		fileMenu.add(gpxExport);
+		fileMenu.addSeparator();
+		fileMenu.add(exit);
+		add(fileMenu);
+
+		editMenu.setMnemonic('E');
+		editMenu.add(undo);
+		editMenu.add(redo);
+		editMenu.addSeparator();
+		editMenu.add(selectAll);
+		editMenu.add(unselectAll);
+		editMenu.addSeparator();
+		editMenu.add(search);
+		editMenu.addSeparator();
+		editMenu.add(preferences);
+		add(editMenu);
+		
+		viewMenu.setMnemonic('V');
+		viewMenu.setVisible(false);
+		viewMenu.add(zoomToMenu);
+		for (String mode : AutoScaleAction.modes)
+			zoomToMenu.add(new AutoScaleAction(mode));
+		add(viewMenu);
+
+		toolsMenu.setMnemonic('T');
+		toolsMenu.add(alignInCircle);
+		toolsMenu.add(alignInLine);
+		toolsMenu.addSeparator();
+		toolsMenu.add(reverseSegment);
+		toolsMenu.add(reorder);
+		toolsMenu.addSeparator();
+		toolsMenu.add(splitWay);
+		toolsMenu.add(combineWay);
+		add(toolsMenu);
+
+		connectionMenu.setMnemonic('C');
+		connectionMenu.add(download);
+		connectionMenu.add(downloadIncomplete);
+		connectionMenu.add(upload);
+		add(connectionMenu);
+
+		layerMenu.setMnemonic('L');
+		add(layerMenu);
+		layerMenu.setVisible(false);
+
+		JMenuItem check = new JMenuItem("DEBUG: Check Dataset");
+		check.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				DataSetChecker.check();
+            }
+		});
+		helpMenu.add(check);
+
+		helpMenu.setMnemonic('H');
+		helpMenu.add(help);
+		helpMenu.add(about);
+		add(helpMenu);
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/gui/MapFrame.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/MapFrame.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/MapFrame.java	(revision 321)
@@ -0,0 +1,193 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui;
+
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Container;
+
+import javax.swing.AbstractButton;
+import javax.swing.Action;
+import javax.swing.BoxLayout;
+import javax.swing.ButtonGroup;
+import javax.swing.JPanel;
+import javax.swing.JToolBar;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.mapmode.AddSegmentAction;
+import org.openstreetmap.josm.actions.mapmode.AddWayAction;
+import org.openstreetmap.josm.actions.mapmode.DeleteAction;
+import org.openstreetmap.josm.actions.mapmode.MapMode;
+import org.openstreetmap.josm.actions.mapmode.SelectionAction;
+import org.openstreetmap.josm.actions.mapmode.ZoomAction;
+import org.openstreetmap.josm.actions.mapmode.AddNodeAction.AddNodeGroup;
+import org.openstreetmap.josm.actions.mapmode.MoveAction.MoveGroup;
+import org.openstreetmap.josm.gui.dialogs.CommandStackDialog;
+import org.openstreetmap.josm.gui.dialogs.ConflictDialog;
+import org.openstreetmap.josm.gui.dialogs.HistoryDialog;
+import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
+import org.openstreetmap.josm.gui.dialogs.PropertiesDialog;
+import org.openstreetmap.josm.gui.dialogs.SelectionListDialog;
+import org.openstreetmap.josm.gui.dialogs.ToggleDialog;
+import org.openstreetmap.josm.gui.dialogs.UserListDialog;
+import org.openstreetmap.josm.tools.Destroyable;
+
+/**
+ * One Map frame with one dataset behind. This is the container gui class whose
+ * display can be set to the different views.
+ * 
+ * @author imi
+ */
+public class MapFrame extends JPanel implements Destroyable {
+
+	/**
+	 * The current mode, this frame operates.
+	 */
+	public MapMode mapMode;
+	/**
+	 * The view control displayed.
+	 */
+	public MapView mapView;
+	/**
+	 * The toolbar with the action icons. To add new toggle dialog actions, use addToggleDialog
+	 * instead of adding directly to this list.
+	 */
+	public JToolBar toolBarActions = new JToolBar(JToolBar.VERTICAL);
+	/**
+	 * The status line below the map
+	 */
+	private MapStatus statusLine;
+
+	public ConflictDialog conflictDialog;
+	/**
+	 * The panel list of all toggle dialog icons. To add new toggle dialog actions, use addToggleDialog
+	 * instead of adding directly to this list.
+	 */
+	public JPanel toggleDialogs = new JPanel();
+
+	public final ButtonGroup toolGroup = new ButtonGroup();
+
+
+	public MapFrame() {
+		setSize(400,400);
+		setLayout(new BorderLayout());
+
+		add(mapView = new MapView(), BorderLayout.CENTER);
+
+		// show menu entry
+		Main.main.menu.viewMenu.setVisible(true);
+
+		// toolbar
+		toolBarActions.setFloatable(false);
+		toolBarActions.add(new IconToggleButton(new ZoomAction(this)));
+		final Action selectionAction = new SelectionAction.Group(this);
+		toolBarActions.add(new IconToggleButton(selectionAction));
+		toolBarActions.add(new IconToggleButton(new MoveGroup(this)));
+		toolBarActions.add(new IconToggleButton(new AddNodeGroup(this)));
+		toolBarActions.add(new IconToggleButton(new AddSegmentAction(this)));
+		toolBarActions.add(new IconToggleButton(new AddWayAction(this)));
+		toolBarActions.add(new IconToggleButton(new DeleteAction(this)));
+
+		for (Component c : toolBarActions.getComponents())
+			toolGroup.add((AbstractButton)c);
+		toolGroup.setSelected(((AbstractButton)toolBarActions.getComponent(0)).getModel(), true);
+		
+		toolBarActions.addSeparator();
+		
+		add(toggleDialogs, BorderLayout.EAST);
+		toggleDialogs.setLayout(new BoxLayout(toggleDialogs, BoxLayout.Y_AXIS));
+
+		addToggleDialog(new LayerListDialog(this));
+		addToggleDialog(new PropertiesDialog(this));
+		addToggleDialog(new HistoryDialog());
+		addToggleDialog(new SelectionListDialog());
+		addToggleDialog(new UserListDialog());
+		addToggleDialog(conflictDialog = new ConflictDialog());
+		addToggleDialog(new CommandStackDialog(this));
+
+		// status line below the map
+		if (!Main.applet)
+	        statusLine = new MapStatus(this);
+	}
+
+	/**
+	 * Called as some kind of destructor when the last layer has been removed.
+	 * Delegates the call to all Destroyables within this component (e.g. MapModes)
+	 */
+	public void destroy() {
+		for (int i = 0; i < toolBarActions.getComponentCount(); ++i)
+			if (toolBarActions.getComponent(i) instanceof Destroyable)
+				((Destroyable)toolBarActions).destroy();
+		
+		// remove menu entries
+		Main.main.menu.viewMenu.setVisible(false);
+    }
+
+	public Action getDefaultButtonAction() {
+		return ((AbstractButton)toolBarActions.getComponent(0)).getAction();
+	}
+
+	/**
+	 * Open all ToggleDialogs that have their preferences property set. Close all others.
+	 */
+	public void setVisibleDialogs() {
+		for (Component c : toggleDialogs.getComponents()) {
+			if (c instanceof ToggleDialog) {
+				boolean sel = Main.pref.getBoolean(((ToggleDialog)c).prefName+".visible");
+				((ToggleDialog)c).action.button.setSelected(sel);
+				c.setVisible(sel);
+			}
+		}
+	}
+
+	/**
+	 * Call this to add new toggle dialogs to the left button-list
+	 * @param dlg The toggle dialog. It must not be in the list already.
+	 */
+	public void addToggleDialog(ToggleDialog dlg) {
+		IconToggleButton button = new IconToggleButton(dlg.action);
+		dlg.action.button = button;
+		dlg.parent = toggleDialogs;
+		toolBarActions.add(button);
+		toggleDialogs.add(dlg);
+	}
+
+
+	/**
+	 * Fires an property changed event "visible".
+	 */
+	@Override public void setVisible(boolean aFlag) {
+		boolean old = isVisible();
+		super.setVisible(aFlag);
+		if (old != aFlag)
+			firePropertyChange("visible", old, aFlag);
+	}
+
+
+
+	/**
+	 * Change the operating map mode for the view. Will call unregister on the
+	 * old MapMode and register on the new one.
+	 * @param mapMode	The new mode to set.
+	 */
+	public void selectMapMode(MapMode mapMode) {
+		if (mapMode == this.mapMode)
+			return;
+		if (this.mapMode != null)
+			this.mapMode.exitMode();
+		this.mapMode = mapMode;
+		mapMode.enterMode();
+	}
+
+	/**
+	 * Fill the given panel by adding all necessary components to the different
+	 * locations.
+	 * 
+	 * @param panel The container to fill. Must have an BorderLayout.
+	 */
+	public void fillPanel(Container panel) {
+		panel.add(this, BorderLayout.CENTER);
+		panel.add(toolBarActions, BorderLayout.WEST);
+		if (statusLine != null)
+			panel.add(statusLine, BorderLayout.SOUTH);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/MapMover.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/MapMover.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/MapMover.java	(revision 321)
@@ -0,0 +1,180 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui;
+
+import java.awt.Cursor;
+import java.awt.Point;
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseMotionListener;
+import java.awt.event.MouseWheelEvent;
+import java.awt.event.MouseWheelListener;
+
+import javax.swing.AbstractAction;
+import javax.swing.JComponent;
+import javax.swing.JPanel;
+import javax.swing.KeyStroke;
+
+import org.openstreetmap.josm.data.coor.EastNorth;
+
+/**
+ * Enables moving of the map by holding down the right mouse button and drag
+ * the mouse. Also, enables zooming by the mouse wheel.
+ *
+ * @author imi
+ */
+public class MapMover extends MouseAdapter implements MouseMotionListener, MouseWheelListener {
+
+	private final class ZoomerAction extends AbstractAction {
+		private final String action;
+		public ZoomerAction(String action) {
+			this.action = action;
+        }
+	    public void actionPerformed(ActionEvent e) {
+	    	if (action.equals(".") || action.equals(",")) {
+	    		Point mouse = nc.getMousePosition();
+	    		if (mouse == null)
+	    			mouse = new Point((int)nc.getBounds().getCenterX(), (int)nc.getBounds().getCenterY());
+	    		MouseWheelEvent we = new MouseWheelEvent(nc, e.getID(), e.getWhen(), e.getModifiers(), mouse.x, mouse.y, 0, false, MouseWheelEvent.WHEEL_UNIT_SCROLL, 1, action.equals(",") ? -1 : 1);
+	    		mouseWheelMoved(we);
+	    	} else {
+	    		EastNorth center = nc.getCenter();
+	    		EastNorth newcenter = nc.getEastNorth(nc.getWidth()/2+nc.getWidth()/5, nc.getHeight()/2+nc.getHeight()/5);
+	    		if (action.equals("left"))
+	    			nc.zoomTo(new EastNorth(2*center.east()-newcenter.east(), center.north()), nc.getScale());
+	    		else if (action.equals("right"))
+	    			nc.zoomTo(new EastNorth(newcenter.east(), center.north()), nc.getScale());
+	    		else if (action.equals("up"))
+	    			nc.zoomTo(new EastNorth(center.east(), 2*center.north()-newcenter.north()), nc.getScale());
+	    		else if (action.equals("down"))
+	    			nc.zoomTo(new EastNorth(center.east(), newcenter.north()), nc.getScale());
+	    	}
+	    }
+    }
+
+	/**
+	 * The point in the map that was the under the mouse point
+	 * when moving around started.
+	 */
+	private EastNorth mousePosMove;
+	/**
+	 * The map to move around.
+	 */
+	private final NavigatableComponent nc;
+	/**
+	 * The old cursor when we changed it to movement cursor.
+	 */
+	private Cursor oldCursor;
+
+	private boolean movementInPlace = false;
+
+	/**
+	 * Create a new MapMover
+	 */
+	public MapMover(NavigatableComponent navComp, JPanel contentPane) {
+		this.nc = navComp;
+		nc.addMouseListener(this);
+		nc.addMouseMotionListener(this);
+		nc.addMouseWheelListener(this);
+		
+		String[] n = {",",".","up","right","down","left"};
+		int[] k = {KeyEvent.VK_COMMA, KeyEvent.VK_PERIOD, KeyEvent.VK_UP, KeyEvent.VK_RIGHT, KeyEvent.VK_DOWN, KeyEvent.VK_LEFT};
+
+		if (contentPane != null) {
+			for (int i = 0; i < n.length; ++i) {
+				contentPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(k[i], KeyEvent.CTRL_DOWN_MASK), "MapMover.Zoomer."+n[i]);
+				contentPane.getActionMap().put("MapMover.Zoomer."+n[i], new ZoomerAction(n[i]));
+			}
+		}
+	}
+
+	/**
+	 * If the right (and only the right) mouse button is pressed, move the map
+	 */
+	public void mouseDragged(MouseEvent e) {
+		int offMask = MouseEvent.BUTTON1_DOWN_MASK | MouseEvent.BUTTON2_DOWN_MASK;
+		if ((e.getModifiersEx() & (MouseEvent.BUTTON3_DOWN_MASK | offMask)) == MouseEvent.BUTTON3_DOWN_MASK) {
+			if (mousePosMove == null)
+				startMovement(e);
+			EastNorth center = nc.getCenter();
+			EastNorth mouseCenter = nc.getEastNorth(e.getX(), e.getY());
+			EastNorth p = new EastNorth(
+					mousePosMove.east() + center.east() - mouseCenter.east(),
+					mousePosMove.north() + center.north() - mouseCenter.north());
+			nc.zoomTo(p, nc.getScale());
+		} else
+			endMovement();
+	}
+
+	/**
+	 * Start the movement, if it was the 3rd button (right button).
+	 */
+	@Override public void mousePressed(MouseEvent e) {
+		int offMask = MouseEvent.BUTTON1_DOWN_MASK | MouseEvent.BUTTON2_DOWN_MASK;
+		if (e.getButton() == MouseEvent.BUTTON3 && (e.getModifiersEx() & offMask) == 0)
+			startMovement(e);
+	}
+
+	/**
+	 * Change the cursor back to it's pre-move cursor.
+	 */
+	@Override public void mouseReleased(MouseEvent e) {
+		if (e.getButton() == MouseEvent.BUTTON3)
+			endMovement();
+	}
+
+	/**
+	 * Start movement by setting a new cursor and remember the current mouse
+	 * position.
+	 * @param e The mouse event that leat to the movement from.
+	 */
+	private void startMovement(MouseEvent e) {
+		if (movementInPlace)
+			return;
+		movementInPlace = true;
+		mousePosMove = nc.getEastNorth(e.getX(), e.getY());
+		oldCursor = nc.getCursor();
+		nc.setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
+	}
+
+	/**
+	 * End the movement. Setting back the cursor and clear the movement variables
+	 */
+	private void endMovement() {
+		if (!movementInPlace)
+			return;
+		movementInPlace = false;
+		if (oldCursor != null)
+			nc.setCursor(oldCursor);
+		else
+			nc.setCursor(Cursor.getDefaultCursor());
+		mousePosMove = null;
+		oldCursor = null;
+	}
+
+	/**
+	 * Zoom the map by 1/5th of current zoom per wheel-delta.
+	 * @param e The wheel event.
+	 */
+	public void mouseWheelMoved(MouseWheelEvent e) {
+		int w = nc.getWidth();
+		int h = nc.getHeight();
+
+		double zoom = Math.max(0.1, 1 + e.getWheelRotation()/5.0);
+		double zoomfactor = (zoom-1)/2+1;
+
+		double newHalfWidth = w*zoomfactor - w/2;
+		double newHalfHeight = h*zoomfactor - h/2;
+		double centerx = e.getX() - (e.getX()-w/2)*newHalfWidth*2/w;
+		double centery = e.getY() - (e.getY()-h/2)*newHalfHeight*2/h;
+		EastNorth newCenter = nc.getEastNorth((int)centerx, (int)centery); 
+
+		nc.zoomTo(newCenter, nc.getScale()*zoom);
+	}
+
+	/**
+	 * Does nothing. Only to satisfy MouseMotionListener
+	 */
+	public void mouseMoved(MouseEvent e) {}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/MapScaler.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/MapScaler.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/MapScaler.java	(revision 321)
@@ -0,0 +1,40 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui;
+
+import java.awt.Graphics;
+import java.awt.geom.Rectangle2D;
+
+import javax.swing.JComponent;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.HelpAction.Helpful;
+import org.openstreetmap.josm.data.projection.Projection;
+import org.openstreetmap.josm.tools.ColorHelper;
+
+public class MapScaler extends JComponent implements Helpful {
+
+	private final NavigatableComponent mv;
+	private final Projection proj;
+
+	public MapScaler(NavigatableComponent mv, Projection proj) {
+		this.mv = mv;
+		this.proj = proj;
+		setSize(100,30);
+		setOpaque(false);
+    }
+
+	@Override public void paint(Graphics g) {
+		double circum = mv.getScale()*100*proj.scaleFactor()*40041455; // circumference of the earth in meter
+		String text = circum > 1000 ? (Math.round(circum/100)/10.0)+"km" : Math.round(circum)+"m";
+		g.setColor(ColorHelper.html2color(Main.pref.get("color.scale", "#ffffff")));
+		g.drawLine(0, 5, 99, 5);
+		g.drawLine(0, 0, 0, 10);
+		g.drawLine(99, 0, 99, 10);
+		Rectangle2D bound = g.getFontMetrics().getStringBounds(text, g);
+		g.drawString(text, (int)(50-bound.getWidth()/2), 23);
+    }
+
+	public String helpTopic() {
+	    return "MapView/Scaler";
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/gui/MapSlider.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/MapSlider.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/MapSlider.java	(revision 321)
@@ -0,0 +1,57 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui;
+
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+
+import javax.swing.JSlider;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+
+import org.openstreetmap.josm.actions.HelpAction.Helpful;
+import org.openstreetmap.josm.data.coor.EastNorth;
+
+class MapSlider extends JSlider implements PropertyChangeListener, ChangeListener, Helpful {
+	
+    private final MapView mv;
+	boolean clicked = false;
+	
+	public MapSlider(MapView mv) {
+		super(0, 20);
+		setOpaque(false);
+		this.mv = mv;
+		addMouseListener(new MouseAdapter(){
+			@Override public void mousePressed(MouseEvent e) {
+				clicked = true;
+			}
+			@Override public void mouseReleased(MouseEvent e) {
+				clicked = false;
+			}
+		});
+		mv.addPropertyChangeListener("scale", this);
+		addChangeListener(this);
+	}
+	
+	public void propertyChange(PropertyChangeEvent evt) {
+		if (!getModel().getValueIsAdjusting())
+			setValue(this.mv.zoom());
+	}
+	
+	public void stateChanged(ChangeEvent e) {
+		if (!clicked)
+			return;
+		EastNorth pos = MapView.world;
+		for (int zoom = 0; zoom < getValue(); ++zoom)
+			pos = new EastNorth(pos.east()/2, pos.north()/2);
+		if (this.mv.getWidth() < this.mv.getHeight())
+			this.mv.zoomTo(this.mv.center, pos.east()*2/(this.mv.getWidth()-20));
+		else
+			this.mv.zoomTo(this.mv.center, pos.north()*2/(this.mv.getHeight()-20));
+	}
+
+	public String helpTopic() {
+	    return "MapView/Slider";
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/gui/MapStatus.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/MapStatus.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/MapStatus.java	(revision 321)
@@ -0,0 +1,272 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.AWTEvent;
+import java.awt.Cursor;
+import java.awt.EventQueue;
+import java.awt.Font;
+import java.awt.GridBagLayout;
+import java.awt.Point;
+import java.awt.Toolkit;
+import java.awt.event.AWTEventListener;
+import java.awt.event.InputEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseMotionListener;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Collection;
+import java.util.ConcurrentModificationException;
+import java.util.Map.Entry;
+
+import javax.swing.BorderFactory;
+import javax.swing.BoxLayout;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+import javax.swing.Popup;
+import javax.swing.PopupFactory;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.HelpAction.Helpful;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.visitor.NameVisitor;
+import org.openstreetmap.josm.tools.GBC;
+
+/**
+ * A component that manages some status information display about the map.
+ * It keeps a status line below the map up to date and displays some tooltip
+ * information if the user hold the mouse long enough at some point.
+ *
+ * All this is done in background to not disturb other processes.
+ *
+ * The background thread does not alter any data of the map (read only thread).
+ * Also it is rather fail safe. In case of some error in the data, it just do
+ * nothing instead of whining and complaining.
+ *
+ * @author imi
+ */
+public class MapStatus extends JPanel implements Helpful {
+
+	/**
+	 * The MapView this status belongs.
+	 */
+	final MapView mv;
+	/**
+	 * The position of the mouse cursor.
+	 */
+	JTextField positionText = new JTextField("-000.00000000000000 -000.00000000000000".length());
+	/**
+	 * The field holding the name of the object under the mouse.
+	 */
+	JTextField nameText = new JTextField(30);
+
+	/**
+	 * The collector class that waits for notification and then update
+	 * the display objects.
+	 *
+	 * @author imi
+	 */
+	private final class Collector implements Runnable {
+		/**
+		 * The last object displayed in status line.
+		 */
+		Collection<OsmPrimitive> osmStatus;
+		/**
+		 * The old modifiers, that was pressed the last time this collector ran.
+		 */
+		private int oldModifiers;
+		/**
+		 * The popup displayed to show additional information
+		 */
+		private Popup popup;
+
+		private MapFrame parent;
+
+		public Collector(MapFrame parent) {
+			this.parent = parent;
+		}
+
+		/**
+		 * Execution function for the Collector.
+		 */
+		public void run() {
+			for (;;) {
+				MouseState ms = new MouseState();
+				synchronized (this) {
+					try {wait();} catch (InterruptedException e) {}
+					ms.modifiers = mouseState.modifiers;
+					ms.mousePos = mouseState.mousePos;
+				}
+				if (parent != Main.map)
+					return; // exit, if new parent.
+				if ((ms.modifiers & MouseEvent.CTRL_DOWN_MASK) != 0 || ms.mousePos == null)
+					continue; // freeze display when holding down ctrl
+
+				if (mv.center == null)
+					continue;
+
+				// This try/catch is a hack to stop the flooding bug reports about this.
+				// The exception needed to handle with in the first place, means that this
+				// access to the data need to be restarted, if the main thread modifies
+				// the data.
+				try {
+					Collection<OsmPrimitive> osms = mv.getAllNearest(ms.mousePos);
+
+					if (osms == null && osmStatus == null && ms.modifiers == oldModifiers)
+						continue;
+					if (osms != null && osms.equals(osmStatus) && ms.modifiers == oldModifiers)
+						continue;
+
+					osmStatus = osms;
+					oldModifiers = ms.modifiers;
+
+					OsmPrimitive osmNearest = null;
+					// Set the text label in the bottom status bar
+					osmNearest = mv.getNearest(ms.mousePos, (ms.modifiers & MouseEvent.ALT_DOWN_MASK) != 0);
+					if (osmNearest != null) {
+						NameVisitor visitor = new NameVisitor();
+						osmNearest.visit(visitor);
+						nameText.setText(visitor.name);
+					} else
+						nameText.setText("");
+
+					// Popup Information
+					if ((ms.modifiers & MouseEvent.BUTTON2_DOWN_MASK) != 0 && osms != null) {
+						if (popup != null) {
+							try {
+	                            EventQueue.invokeAndWait(new Runnable() {
+	                                public void run() {
+	                                	popup.hide();
+	                                }
+	                            });
+                            } catch (InterruptedException e) {
+                            } catch (InvocationTargetException e) {
+                            	throw new RuntimeException(e);
+                            }
+						}
+
+						JPanel c = new JPanel(new GridBagLayout());
+						for (final OsmPrimitive osm : osms) {
+							NameVisitor visitor = new NameVisitor();
+							osm.visit(visitor);
+							final StringBuilder text = new StringBuilder();
+							if (osm.id == 0 || osm.modified)
+								visitor.name = "<i><b>"+visitor.name+"*</b></i>";
+							text.append(visitor.name);
+							if (osm.id != 0)
+								text.append("<br>id="+osm.id);
+							for (Entry<String, String> e : osm.entrySet())
+								text.append("<br>"+e.getKey()+"="+e.getValue());
+							final JLabel l = new JLabel("<html>"+text.toString()+"</html>", visitor.icon, JLabel.HORIZONTAL);
+							l.setFont(l.getFont().deriveFont(Font.PLAIN));
+							l.setVerticalTextPosition(JLabel.TOP);
+							l.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
+							l.addMouseListener(new MouseAdapter(){
+								@Override public void mouseEntered(MouseEvent e) {
+									l.setText("<html><u color='blue'>"+text.toString()+"</u></html>");
+								}
+								@Override public void mouseExited(MouseEvent e) {
+									l.setText("<html>"+text.toString()+"</html>");
+								}
+								@Override public void mouseClicked(MouseEvent e) {
+									Main.ds.setSelected(osm);
+									mv.repaint();
+								}
+							});
+							c.add(l, GBC.eol());
+						}
+
+						Point p = mv.getLocationOnScreen();
+						popup = PopupFactory.getSharedInstance().getPopup(mv, c, p.x+ms.mousePos.x+16, p.y+ms.mousePos.y+16);
+						final Popup staticPopup = popup;
+						EventQueue.invokeLater(new Runnable(){
+							public void run() {
+								staticPopup.show();
+                            }
+						});
+					} else if (popup != null) {
+						final Popup staticPopup = popup;
+						popup = null;
+						EventQueue.invokeLater(new Runnable(){
+							public void run() {
+								staticPopup.hide();
+                            }
+						});
+					}
+				} catch (ConcurrentModificationException x) {
+				} catch (NullPointerException x) {
+				}
+			}
+		}
+	}
+
+	/**
+	 * Everything, the collector is interested of. Access must be synchronized.
+	 * @author imi
+	 */
+	class MouseState {
+		Point mousePos;
+		int modifiers;
+	}
+	/**
+	 * The last sent mouse movement event.
+	 */
+	MouseState mouseState = new MouseState();
+
+	/**
+	 * Construct a new MapStatus and attach it to the map view.
+	 * @param mv The MapView the status line is part of.
+	 */
+	public MapStatus(final MapFrame mapFrame) {
+		this.mv = mapFrame.mapView;
+
+		// Listen for mouse movements and set the position text field
+		mv.addMouseMotionListener(new MouseMotionListener(){
+			public void mouseDragged(MouseEvent e) {
+				mouseMoved(e);
+			}
+			public void mouseMoved(MouseEvent e) {
+				if (mv.center == null)
+					return;
+				// Do not update the view, if ctrl is pressed.
+				if ((e.getModifiersEx() & MouseEvent.CTRL_DOWN_MASK) == 0) {
+					LatLon p = mv.getLatLon(e.getX(),e.getY());
+					positionText.setText(p.lat()+" "+p.lon());
+				}
+			}
+		});
+
+		positionText.setEditable(false);
+		nameText.setEditable(false);
+		setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
+		setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
+		add(new JLabel(tr("Lat/Lon")+" "));
+		add(positionText);
+		add(new JLabel(" "+tr("Object")+" "));
+		add(nameText);
+
+		// The background thread
+		final Collector collector = new Collector(mapFrame);
+		new Thread(collector).start();
+
+		// Listen to keyboard/mouse events for pressing/releasing alt key and
+		// inform the collector.
+        Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener(){
+        	public void eventDispatched(AWTEvent event) {
+        		synchronized (collector) {
+        			mouseState.modifiers = ((InputEvent)event).getModifiersEx();
+        			if (event instanceof MouseEvent)
+        				mouseState.mousePos = ((MouseEvent)event).getPoint();
+        			collector.notify();
+        		}
+        	}
+        }, AWTEvent.KEY_EVENT_MASK | AWTEvent.MOUSE_EVENT_MASK | AWTEvent.MOUSE_MOTION_EVENT_MASK);
+	}
+
+	public String helpTopic() {
+	    return "Statusline";
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/gui/MapView.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/MapView.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/MapView.java	(revision 321)
@@ -0,0 +1,304 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.Point;
+import java.awt.event.ComponentAdapter;
+import java.awt.event.ComponentEvent;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedList;
+
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.AutoScaleAction;
+import org.openstreetmap.josm.data.Bounds;
+import org.openstreetmap.josm.data.SelectionChangedListener;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
+import org.openstreetmap.josm.data.osm.visitor.SimplePaintVisitor;
+import org.openstreetmap.josm.data.projection.Projection;
+import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer.ModifiedChangedListener;
+
+/**
+ * This is a component used in the MapFrame for browsing the map. It use is to
+ * provide the MapMode's enough capabilities to operate.
+ *
+ * MapView hold meta-data about the data set currently displayed, as scale level,
+ * center point viewed, what scrolling mode or editing mode is selected or with
+ * what projection the map is viewed etc..
+ *
+ * MapView is able to administrate several layers.
+ *
+ * @author imi
+ */
+public class MapView extends NavigatableComponent {
+
+	/**
+	 * Interface to notify listeners of the change of the active layer.
+	 * @author imi
+	 * @deprecated Use Layer.LayerChangeListener instead
+	 */
+	@Deprecated public interface LayerChangeListener {
+		void activeLayerChange(Layer oldLayer, Layer newLayer);
+		void layerAdded(Layer newLayer);
+		void layerRemoved(Layer oldLayer);
+	}
+
+	/**
+	 * A list of all layers currently loaded.
+	 */
+	private ArrayList<Layer> layers = new ArrayList<Layer>();
+	/**
+	 * Direct link to the edit layer (if any) in the layers list.
+	 */
+	public OsmDataLayer editLayer;
+	/**
+	 * The layer from the layers list that is currently active.
+	 */
+	private Layer activeLayer;
+	/**
+	 * The listener of the active layer changes.
+	 * @deprecated Use Layer.listener instead.
+	 */
+	@Deprecated private Collection<LayerChangeListener> listeners = new LinkedList<LayerChangeListener>();
+
+	public MapView() {
+		addComponentListener(new ComponentAdapter(){
+			@Override public void componentResized(ComponentEvent e) {
+				new AutoScaleAction("data").actionPerformed(null);
+				removeComponentListener(this);
+			}
+		});
+
+		new MapMover(this, Main.contentPane);
+
+		// listend to selection changes to redraw the map
+		DataSet.listeners.add(new SelectionChangedListener(){
+			public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
+				repaint();
+			}
+		});
+
+		MapSlider zoomSlider = new MapSlider(this);
+		add(zoomSlider);
+		zoomSlider.setBounds(3, 0, 114, 30);
+
+		MapScaler scaler = new MapScaler(this, Main.proj);
+		add(scaler);
+		scaler.setLocation(10,30);
+	}
+
+	/**
+	 * Add a layer to the current MapView. The layer will be added at topmost
+	 * position.
+	 */
+	public void addLayer(Layer layer) {
+		if (layer instanceof OsmDataLayer) {
+			editLayer = (OsmDataLayer)layer;
+			Main.ds = editLayer.data;
+			editLayer.listenerModified.add(new ModifiedChangedListener(){
+				public void modifiedChanged(boolean value, OsmDataLayer source) {
+					JOptionPane.getFrameForComponent(Main.parent).setTitle((value?"*":"")+tr("Java OpenStreetMap - Editor"));
+				}
+			});
+		}
+
+		layers.add(layers.size(), layer);
+
+		// TODO: Deprecated
+		for (LayerChangeListener l : listeners)
+			l.layerAdded(layer);
+		for (Layer.LayerChangeListener l : Layer.listeners)
+			l.layerAdded(layer);
+
+		// autoselect the new layer
+		setActiveLayer(layer);
+		repaint();
+	}
+
+	/**
+	 * Remove the layer from the mapview. If the layer was in the list before,
+	 * an LayerChange event is fired.
+	 */
+	public void removeLayer(Layer layer) {
+		if (layers.remove(layer)) {
+			// TODO: Deprecated
+			for (LayerChangeListener l : listeners)
+				l.layerRemoved(layer);
+			for (Layer.LayerChangeListener l : Layer.listeners)
+				l.layerRemoved(layer);
+		}
+		if (layer == editLayer) {
+			editLayer = null;
+			Main.ds.setSelected();
+		}
+		layer.destroy();
+	}
+
+	/**
+	 * Moves the layer to the given new position. No event is fired.
+	 * @param layer		The layer to move
+	 * @param pos		The new position of the layer
+	 */
+	public void moveLayer(Layer layer, int pos) {
+		int curLayerPos = layers.indexOf(layer);
+		if (curLayerPos == -1)
+			throw new IllegalArgumentException(tr("layer not in list."));
+		if (pos == curLayerPos)
+			return; // already in place.
+		layers.remove(curLayerPos);
+		if (pos >= layers.size())
+			layers.add(layer);
+		else
+			layers.add(pos, layer);
+	}
+
+	/**
+	 * Draw the component.
+	 */
+	@Override public void paint(Graphics g) {
+		if (center == null)
+			return; // no data loaded yet.
+		g.setColor(SimplePaintVisitor.getPreferencesColor("background", Color.BLACK));
+		g.fillRect(0, 0, getWidth(), getHeight());
+
+		for (int i = layers.size()-1; i >= 0; --i) {
+			Layer l = layers.get(i);
+			if (l.visible && l != getActiveLayer())
+				l.paint(g, this);
+		}
+		if (getActiveLayer().visible)
+			getActiveLayer().paint(g, this);
+
+		// draw world borders
+		g.setColor(Color.WHITE);
+		Bounds b = new Bounds();
+		Point min = getPoint(getProjection().latlon2eastNorth(b.min));
+		Point max = getPoint(getProjection().latlon2eastNorth(b.max));
+		int x1 = Math.min(min.x, max.x);
+		int y1 = Math.min(min.y, max.y);
+		int x2 = Math.max(min.x, max.x);
+		int y2 = Math.max(min.y, max.y);
+		if (x1 > 0 || y1 > 0 || x2 < getWidth() || y2 < getHeight())
+			g.drawRect(x1, y1, x2-x1+1, y2-y1+1);
+		super.paint(g);
+	}
+
+	/**
+	 * Set the new dimension to the projection class. Also adjust the components
+	 * scale, if in autoScale mode.
+	 */
+	public void recalculateCenterScale(BoundingXYVisitor box) {
+		// -20 to leave some border
+		int w = getWidth()-20;
+		if (w < 20)
+			w = 20;
+		int h = getHeight()-20;
+		if (h < 20)
+			h = 20;
+
+		EastNorth oldCenter = center;
+		double oldScale = this.scale;
+
+		if (box == null || box.min == null || box.max == null || box.min.equals(box.max)) {
+			// no bounds means whole world
+			center = getProjection().latlon2eastNorth(new LatLon(0,0));
+			EastNorth world = getProjection().latlon2eastNorth(new LatLon(Projection.MAX_LAT,Projection.MAX_LON));
+			double scaleX = world.east()*2/w;
+			double scaleY = world.north()*2/h;
+			scale = Math.max(scaleX, scaleY); // minimum scale to see all of the screen
+		} else {
+			center = new EastNorth(box.min.east()/2+box.max.east()/2, box.min.north()/2+box.max.north()/2);
+			double scaleX = (box.max.east()-box.min.east())/w;
+			double scaleY = (box.max.north()-box.min.north())/h;
+			scale = Math.max(scaleX, scaleY); // minimum scale to see all of the screen
+		}
+
+		if (!center.equals(oldCenter))
+			firePropertyChange("center", oldCenter, center);
+		if (oldScale != scale)
+			firePropertyChange("scale", oldScale, scale);
+		repaint();
+	}
+
+	/**
+	 * Add a listener for changes of active layer.
+	 * @param listener The listener that get added.
+	 * @deprecated Use Layer.listener.add instead.
+	 */
+	@Deprecated public void addLayerChangeListener(LayerChangeListener listener) {
+		if (listener != null)
+			listeners.add(listener);
+	}
+
+	/**
+	 * Remove the listener.
+	 * @param listener The listener that get removed from the list.
+	 * @deprecated Use Layer.listener.remove instead
+	 */
+	@Deprecated public void removeLayerChangeListener(LayerChangeListener listener) {
+		listeners.remove(listener);
+	}
+
+	/**
+	 * @return An unmodificable list of all layers
+	 */
+	public Collection<Layer> getAllLayers() {
+		return Collections.unmodifiableCollection(layers);
+	}
+
+	/**
+	 * Set the active selection to the given value and raise an layerchange event.
+	 */
+	public void setActiveLayer(Layer layer) {
+		if (!layers.contains(layer))
+			throw new IllegalArgumentException("Layer must be in layerlist");
+		if (layer instanceof OsmDataLayer) {
+			editLayer = (OsmDataLayer)layer;
+			Main.ds = editLayer.data;
+			DataSet.fireSelectionChanged(Main.ds.getSelected());
+		}
+		Layer old = activeLayer;
+		activeLayer = layer;
+		if (old != layer) {
+			// TODO: Deprecated
+			for (LayerChangeListener l : listeners)
+				l.activeLayerChange(old, layer);
+			for (Layer.LayerChangeListener l : Layer.listeners)
+				l.activeLayerChange(old, layer);
+		}
+		repaint();
+	}
+
+	/**
+	 * @return The current active layer
+	 */
+	public Layer getActiveLayer() {
+		return activeLayer;
+	}
+
+	/**
+	 * In addition to the base class funcitonality, this keep trak of the autoscale
+	 * feature.
+	 */
+	@Override public void zoomTo(EastNorth newCenter, double scale) {
+		EastNorth oldCenter = center;
+		double oldScale = this.scale;
+		super.zoomTo(newCenter, scale);
+		if ((oldCenter == null && center != null) || !oldCenter.equals(center))
+			firePropertyChange("center", oldCenter, center);
+		if (oldScale != scale)
+			firePropertyChange("scale", oldScale, scale);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java	(revision 321)
@@ -0,0 +1,311 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui;
+
+import java.awt.Point;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+
+import javax.swing.JComponent;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.HelpAction.Helpful;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.projection.Projection;
+
+/**
+ * An component that can be navigated by a mapmover. Used as map view and for the
+ * zoomer in the download dialog.
+ *
+ * @author imi
+ */
+public class NavigatableComponent extends JComponent implements Helpful {
+
+
+	public static final EastNorth world = Main.proj.latlon2eastNorth(new LatLon(Projection.MAX_LAT, Projection.MAX_LON));
+
+	/**
+	 * The scale factor in x or y-units per pixel. This means, if scale = 10,
+	 * every physical pixel on screen are 10 x or 10 y units in the
+	 * northing/easting space of the projection.
+	 */
+	protected double scale;
+	/**
+	 * Center n/e coordinate of the desired screen center.
+	 */
+	protected EastNorth center;
+
+	public NavigatableComponent() {
+		setLayout(null);
+    }
+
+	/**
+	 * Return the OSM-conform zoom factor (0 for whole world, 1 for half, 2 for quarter...)
+	 */
+	public int zoom() {
+		double sizex = scale * getWidth();
+		double sizey = scale * getHeight();
+		for (int zoom = 0; zoom <= 32; zoom++, sizex *= 2, sizey *= 2)
+			if (sizex > world.east() || sizey > world.north())
+				return zoom;
+		return 32;
+	}
+
+	/**
+	 * Return the current scale value.
+	 * @return The scale value currently used in display
+	 */
+	public double getScale() {
+		return scale;
+	}
+
+	/**
+	 * @return Returns the center point. A copy is returned, so users cannot
+	 * 		change the center by accessing the return value. Use zoomTo instead.
+	 */
+	public EastNorth getCenter() {
+		return center;
+	}
+
+	/**
+	 * @param x X-Pixelposition to get coordinate from
+	 * @param y Y-Pixelposition to get coordinate from
+	 *
+	 * @return Geographic coordinates from a specific pixel coordination
+	 * 		on the screen.
+	 */
+	public EastNorth getEastNorth(int x, int y) {
+		return new EastNorth(
+				center.east() + (x - getWidth()/2.0)*scale,
+				center.north() - (y - getHeight()/2.0)*scale);
+	}
+
+	/**
+	 * @param x X-Pixelposition to get coordinate from
+	 * @param y Y-Pixelposition to get coordinate from
+	 *
+	 * @return Geographic unprojected coordinates from a specific pixel coordination
+	 * 		on the screen.
+	 */
+	public LatLon getLatLon(int x, int y) {
+		EastNorth eastNorth = new EastNorth(
+				center.east() + (x - getWidth()/2.0)*scale,
+				center.north() - (y - getHeight()/2.0)*scale);
+		return getProjection().eastNorth2latlon(eastNorth);
+	}
+
+	/**
+	 * Return the point on the screen where this Coordinate would be.
+	 * @param point The point, where this geopoint would be drawn.
+	 * @return The point on screen where "point" would be drawn, relative
+	 * 		to the own top/left.
+	 */
+	public Point getPoint(EastNorth p) {
+		double x = (p.east()-center.east())/scale + getWidth()/2;
+		double y = (center.north()-p.north())/scale + getHeight()/2;
+		return new Point((int)x,(int)y);
+	}
+
+	/**
+	 * Zoom to the given coordinate.
+	 * @param centerX The center x-value (easting) to zoom to.
+	 * @param centerY The center y-value (northing) to zoom to.
+	 * @param scale The scale to use.
+	 */
+	public void zoomTo(EastNorth newCenter, double scale) {
+		center = newCenter;
+		getProjection().eastNorth2latlon(center);
+		this.scale = scale;
+		repaint();
+	}
+
+	/**
+	 * Return the nearest point to the screen point given.
+	 * If a node within 10 pixel is found, the nearest node is returned.
+	 */
+	public final Node getNearestNode(Point p) {
+		double minDistanceSq = Double.MAX_VALUE;
+		Node minPrimitive = null;
+		for (Node n : Main.ds.nodes) {
+			if (n.deleted)
+				continue;
+			Point sp = getPoint(n.eastNorth);
+			double dist = p.distanceSq(sp);
+			if (minDistanceSq > dist && dist < 100) {
+				minDistanceSq = p.distanceSq(sp);
+				minPrimitive = n;
+			}
+		}
+		return minPrimitive;
+	}
+
+	/**
+	 * @return the nearest way to the screen point given.
+	 */
+	public final Way getNearestWay(Point p) {
+		Way minPrimitive = null;
+		double minDistanceSq = Double.MAX_VALUE;
+		for (Way w : Main.ds.ways) {
+			if (w.deleted)
+				continue;
+			for (Segment ls : w.segments) {
+				if (ls.deleted || ls.incomplete)
+					continue;
+				Point A = getPoint(ls.from.eastNorth);
+				Point B = getPoint(ls.to.eastNorth);
+				double c = A.distanceSq(B);
+				double a = p.distanceSq(B);
+				double b = p.distanceSq(A);
+				double perDist = a-(a-b+c)*(a-b+c)/4/c; // perpendicular distance squared
+				if (perDist < 100 && minDistanceSq > perDist && a < c+100 && b < c+100) {
+					minDistanceSq = perDist;
+					minPrimitive = w;
+				}
+			}
+		}
+		return minPrimitive;
+	}
+
+	/**
+	 * @return the nearest segment to the screen point given 
+	 * 
+	 * @param p the point for which to search the nearest segment.
+	 */
+	public final Segment getNearestSegment(Point p) {
+		List<Segment> e = Collections.emptyList();
+		return getNearestSegment(p, e);
+	}
+	
+	/**
+	 * @return the nearest segment to the screen point given that is not 
+	 * in ignoreThis.
+	 * 
+	 * @param p the point for which to search the nearest segment.
+	 * @param ignore a collection of segments which are not to be returned. Must not be null.
+	 */
+	public final Segment getNearestSegment(Point p, Collection<Segment> ignore) {
+		Segment minPrimitive = null;
+		double minDistanceSq = Double.MAX_VALUE;
+		// segments
+		for (Segment ls : Main.ds.segments) {
+			if (ls.deleted || ls.incomplete || ignore.contains(ls))
+				continue;
+			Point A = getPoint(ls.from.eastNorth);
+			Point B = getPoint(ls.to.eastNorth);
+			double c = A.distanceSq(B);
+			double a = p.distanceSq(B);
+			double b = p.distanceSq(A);
+			double perDist = a-(a-b+c)*(a-b+c)/4/c; // perpendicular distance squared
+			if (perDist < 100 && minDistanceSq > perDist && a < c+100 && b < c+100) {
+				minDistanceSq = perDist;
+				minPrimitive = ls;
+			}
+		}
+		return minPrimitive;
+    }
+
+	/**
+	 * Return the object, that is nearest to the given screen point.
+	 *
+	 * First, a node will be searched. If a node within 10 pixel is found, the
+	 * nearest node is returned.
+	 *
+	 * If no node is found, search for pending segments.
+	 *
+	 * If no such segment is found, and a non-pending segment is
+	 * within 10 pixel to p, this segment is returned, except when
+	 * <code>wholeWay</code> is <code>true</code>, in which case the
+	 * corresponding Way is returned.
+	 *
+	 * If no segment is found and the point is within an area, return that
+	 * area.
+	 *
+	 * If no area is found, return <code>null</code>.
+	 *
+	 * @param p				 The point on screen.
+	 * @param segmentInsteadWay Whether the segment (true) or only the whole
+	 * 					 	 way should be returned.
+	 * @return	The primitive, that is nearest to the point p.
+	 */
+	public OsmPrimitive getNearest(Point p, boolean segmentInsteadWay) {
+		OsmPrimitive osm = getNearestNode(p);
+		if (osm == null && !segmentInsteadWay)
+			osm = getNearestWay(p);
+		if (osm == null)
+			osm = getNearestSegment(p);
+		return osm;
+	}
+
+	/**
+	 * @return A list of all objects that are nearest to
+	 * the mouse. To do this, first the nearest object is
+	 * determined.
+	 *
+	 * If its a node, return all segments and
+	 * streets the node is part of, as well as all nodes
+	 * (with their segments and ways) with the same
+	 * location.
+	 *
+	 * If its a segment, return all ways this segment
+	 * belongs to as well as all segments that are between
+	 * the same nodes (in both direction) with all their ways.
+	 *
+	 * @return A collection of all items or <code>null</code>
+	 * 		if no item under or near the point. The returned
+	 * 		list is never empty.
+	 */
+	public Collection<OsmPrimitive> getAllNearest(Point p) {
+		OsmPrimitive osm = getNearest(p, true);
+		if (osm == null)
+			return null;
+		Collection<OsmPrimitive> c = new HashSet<OsmPrimitive>();
+		c.add(osm);
+		if (osm instanceof Node) {
+			Node node = (Node)osm;
+			for (Node n : Main.ds.nodes)
+				if (!n.deleted && n.coor.equals(node.coor))
+					c.add(n);
+			for (Segment ls : Main.ds.segments)
+				// segments never match nodes, so they are skipped by contains
+				if (!ls.deleted && !ls.incomplete && (c.contains(ls.from) || c.contains(ls.to)))
+					c.add(ls);
+		}
+		if (osm instanceof Segment) {
+			Segment line = (Segment)osm;
+			for (Segment ls : Main.ds.segments)
+				if (!ls.deleted && ls.equalPlace(line))
+					c.add(ls);
+		}
+		if (osm instanceof Node || osm instanceof Segment) {
+			for (Way w : Main.ds.ways) {
+				if (w.deleted)
+					continue;
+				for (Segment ls : w.segments) {
+					if (!ls.deleted && !ls.incomplete && c.contains(ls)) {
+						c.add(w);
+						break;
+					}
+				}
+			}
+		}
+		return c;
+	}
+
+	/**
+	 * @return The projection to be used in calculating stuff.
+	 */
+	protected Projection getProjection() {
+		return Main.proj;
+	}
+
+	public String helpTopic() {
+	    String n = getClass().getName();
+	    return n.substring(n.lastIndexOf('.')+1);
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/gui/OsmPrimitivRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/OsmPrimitivRenderer.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/OsmPrimitivRenderer.java	(revision 321)
@@ -0,0 +1,29 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui;
+
+import java.awt.Component;
+
+import javax.swing.DefaultListCellRenderer;
+import javax.swing.JList;
+
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.visitor.NameVisitor;
+
+/**
+ * Renderer that renders the objects from an OsmPrimitive as data.
+ * @author imi
+ */
+public class OsmPrimitivRenderer extends DefaultListCellRenderer {
+
+	private NameVisitor visitor = new NameVisitor();
+
+	@Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
+		super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
+		if (value != null) {
+			((OsmPrimitive)value).visit(visitor);
+			setText(visitor.name);
+			setIcon(visitor.icon);
+		}
+		return this;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/PleaseWaitDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/PleaseWaitDialog.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/PleaseWaitDialog.java	(revision 321)
@@ -0,0 +1,40 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui;
+
+import java.awt.Component;
+import java.awt.GridBagLayout;
+
+import javax.swing.BorderFactory;
+import javax.swing.BoundedRangeModel;
+import javax.swing.JButton;
+import javax.swing.JDialog;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JProgressBar;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.tools.GBC;
+import org.openstreetmap.josm.tools.I18n;
+
+public class PleaseWaitDialog extends JDialog {
+
+	private final JProgressBar progressBar = new JProgressBar();
+
+	public final JLabel currentAction = new JLabel(I18n.tr("Contacting the OSM server..."));
+	public final BoundedRangeModel progress = progressBar.getModel();
+	public final JButton cancel = new JButton(I18n.tr("Cancel"));
+
+	public PleaseWaitDialog(Component parent) {
+		super(JOptionPane.getFrameForComponent(parent), true);
+		setLayout(new GridBagLayout());
+		JPanel pane = new JPanel(new GridBagLayout());
+		pane.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
+		pane.add(currentAction, GBC.eol().fill(GBC.HORIZONTAL));
+		pane.add(progressBar, GBC.eop().fill(GBC.HORIZONTAL));
+		pane.add(cancel, GBC.eol().anchor(GBC.CENTER));
+		setContentPane(pane);
+		setSize(350,100);
+		setLocationRelativeTo(Main.parent);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java	(revision 321)
@@ -0,0 +1,149 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.EventQueue;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.xml.sax.SAXException;
+
+/**
+ * Instanced of this thread will display a "Please Wait" message in middle of JOSM
+ * to indicate a progress beeing executed.
+ *
+ * @author Imi
+ */
+public abstract class PleaseWaitRunnable implements Runnable {
+
+	public String errorMessage;
+
+	private boolean closeDialogCalled = false;
+	private boolean cancelled = false;
+
+	private final String title;
+
+	/**
+	 * Create the runnable object with a given message for the user.
+	 */
+	public PleaseWaitRunnable(String title) {
+		this.title = title;
+		Main.pleaseWaitDlg.cancel.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				if (!cancelled) {
+					cancelled = true;
+					cancel();
+				}
+			}
+		});
+		Main.pleaseWaitDlg.addWindowListener(new WindowAdapter(){
+			@Override public void windowClosing(WindowEvent e) {
+				if (!closeDialogCalled) {
+					if (!cancelled) {
+						cancelled = true;
+						cancel();
+					}
+					closeDialog();
+				}
+			}
+		});
+	}
+
+	public final void run() {
+		try {
+			if (cancelled)
+				return; // since realRun isn't executed, do not call to finish
+
+			// reset dialog state
+			Main.pleaseWaitDlg.setTitle(title);
+			errorMessage = null;
+			closeDialogCalled = false;
+
+			// show the dialog
+			synchronized (this) {
+	            EventQueue.invokeLater(new Runnable() {
+	            	public void run() {
+	            		synchronized (PleaseWaitRunnable.this) {
+	            			PleaseWaitRunnable.this.notifyAll();
+	            		}
+	            		Main.pleaseWaitDlg.setVisible(true);
+	            	}
+	            });
+	            try {wait();} catch (InterruptedException e) {}
+			}
+
+			realRun();
+		} catch (SAXException x) {
+			x.printStackTrace();
+			errorMessage = tr("Error while parsing")+": "+x.getMessage();
+		} catch (FileNotFoundException x) {
+			x.printStackTrace();
+			errorMessage = tr("File not found")+": "+x.getMessage();
+		} catch (IOException x) {
+			x.printStackTrace();
+			errorMessage = x.getMessage();
+		} finally {
+			closeDialog();
+		}
+	}
+
+	/**
+	 * User pressed cancel button.
+	 */
+	protected abstract void cancel();
+
+	/**
+	 * Called in the worker thread to do the actual work. When any of the
+	 * exception is thrown, a message box will be displayed and closeDialog
+	 * is called. finish() is called in any case.
+	 */
+	protected abstract void realRun() throws SAXException, IOException;
+
+	/**
+	 * Finish up the data work. Is guaranteed to be called if realRun is called.
+	 * Finish is called in the gui thread just after the dialog disappeared.
+	 */
+	protected abstract void finish();
+
+	/**
+	 * Close the dialog. Usually called from worker thread.
+	 */
+	public void closeDialog() {
+		if (closeDialogCalled)
+			return;
+		closeDialogCalled  = true;
+		try {
+			Runnable runnable = new Runnable(){
+				public void run() {
+					try {
+						finish();
+					} finally {
+						Main.pleaseWaitDlg.setVisible(false);
+						Main.pleaseWaitDlg.dispose();
+					}
+					if (errorMessage != null)
+						JOptionPane.showMessageDialog(Main.parent, errorMessage);
+				}
+			};
+
+			// make sure, this is called in the dispatcher thread ASAP
+			if (EventQueue.isDispatchThread())
+				runnable.run();
+			else
+				EventQueue.invokeAndWait(runnable);
+
+		} catch (InterruptedException e) {
+		} catch (InvocationTargetException e) {
+			throw new RuntimeException(e);
+		}
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/SelectionManager.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/SelectionManager.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/SelectionManager.java	(revision 321)
@@ -0,0 +1,361 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui;
+
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Graphics;
+import java.awt.Point;
+import java.awt.Rectangle;
+import java.awt.event.ActionEvent;
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.awt.event.MouseMotionListener;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.Collection;
+import java.util.LinkedList;
+
+import javax.swing.AbstractAction;
+import javax.swing.JComponent;
+import javax.swing.KeyStroke;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+
+/**
+ * Manages the selection of a rectangle. Listening to left and right mouse button
+ * presses and to mouse motions and draw the rectangle accordingly.
+ * 
+ * Left mouse button selects a rectangle from the press until release. Pressing
+ * right mouse button while left is still pressed enable the rectangle to move
+ * around. Releasing the left button fires an action event to the listener given
+ * at constructor, except if the right is still pressed, which just remove the
+ * selection rectangle and does nothing.
+ * 
+ * The point where the left mouse button was pressed and the current mouse 
+ * position are two opposite corners of the selection rectangle.
+ * 
+ * It is possible to specify an aspect ratio (width per height) which the 
+ * selection rectangle always must have. In this case, the selection rectangle
+ * will be the largest window with this aspect ratio, where the position the left
+ * mouse button was pressed and the corner of the current mouse position are at 
+ * opposite sites (the mouse position corner is the corner nearest to the mouse
+ * cursor). 
+ * 
+ * When the left mouse button was released, an ActionEvent is send to the 
+ * ActionListener given at constructor. The source of this event is this manager.
+ * 
+ * @author imi
+ */
+public class SelectionManager implements MouseListener, MouseMotionListener, PropertyChangeListener {
+
+	/**
+	 * This is the interface that an user of SelectionManager has to implement
+	 * to get informed when a selection closes.
+	 * @author imi
+	 */
+	public interface SelectionEnded {
+		/**
+		 * Called, when the left mouse button was released.
+		 * @param r The rectangle, that is currently the selection.
+		 * @param alt Whether the alt key was pressed
+		 * @param shift Whether the shift key was pressed
+		 * @param ctrl Whether the ctrl key was pressed 
+		 * @see InputEvent#getModifiersEx()
+		 */
+		public void selectionEnded(Rectangle r, boolean alt, boolean shift, boolean ctrl);
+		/**
+		 * Called to register the selection manager for "active" property.
+		 * @param listener The listener to register
+		 */
+		public void addPropertyChangeListener(PropertyChangeListener listener);
+		/**
+		 * Called to remove the selection manager from the listener list 
+		 * for "active" property.
+		 * @param listener The listener to register
+		 */
+		public void removePropertyChangeListener(PropertyChangeListener listener);
+	}
+	/**
+	 * The listener that receives the events after left mouse button is released.
+	 */
+	private final SelectionEnded selectionEndedListener;
+	/**
+	 * Position of the map when the mouse button was pressed.
+	 * If this is not <code>null</code>, a rectangle is drawn on screen. 
+	 */
+	private Point mousePosStart;
+	/**
+	 * Position of the map when the selection rectangle was last drawn.
+	 */
+	private Point mousePos;
+	/**
+	 * The Component, the selection rectangle is drawn onto.
+	 */
+	private final NavigatableComponent nc;
+	/**
+	 * Whether the selection rectangle must obtain the aspect ratio of the 
+	 * drawComponent.
+	 */
+	private boolean aspectRatio;
+
+	/**
+	 * Create a new SelectionManager.
+	 *
+	 * @param actionListener The action listener that receives the event when
+	 * 		the left button is released.
+	 * @param aspectRatio If true, the selection window must obtain the aspect
+	 * 		ratio of the drawComponent.
+	 * @param navComp The component, the rectangle is drawn onto.
+	 */
+	public SelectionManager(SelectionEnded selectionEndedListener, boolean aspectRatio, NavigatableComponent navComp) {
+		this.selectionEndedListener = selectionEndedListener;
+		this.aspectRatio = aspectRatio;
+		this.nc = navComp;
+	}
+	
+	/**
+	 * Register itself at the given event source.
+	 * @param eventSource The emitter of the mouse events.
+	 */
+	public void register(NavigatableComponent eventSource) {
+		eventSource.addMouseListener(this);
+		eventSource.addMouseMotionListener(this);
+		selectionEndedListener.addPropertyChangeListener(this);
+		Main.contentPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "SelectionManager");
+        Main.contentPane.getActionMap().put("SelectionManager", new AbstractAction(){
+			public void actionPerformed(ActionEvent e) {
+				if (mousePos != null && mousePosStart != null)
+					paintRect();
+				mousePosStart = null;
+				mousePos = null;
+            }
+        });
+        eventSource.addPropertyChangeListener("scale", new PropertyChangeListener(){
+			public void propertyChange(PropertyChangeEvent evt) {
+				if (mousePosStart != null) {
+					paintRect();
+					mousePos = mousePosStart = null;
+				}
+            }
+        });
+	}
+	/**
+	 * Unregister itself from the given event source. If a selection rectangle is
+	 * shown, hide it first.
+	 *
+	 * @param eventSource The emitter of the mouse events.
+	 */
+	public void unregister(Component eventSource) {
+		eventSource.removeMouseListener(this);
+		eventSource.removeMouseMotionListener(this);
+		selectionEndedListener.removePropertyChangeListener(this);
+		Main.contentPane.getInputMap().remove(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0));
+		Main.contentPane.getActionMap().remove("SelectionManager");
+	}
+
+	/**
+	 * If the correct button, from the "drawing rectangle" mode
+	 */
+	public void mousePressed(MouseEvent e) {
+		if (e.getButton() == MouseEvent.BUTTON1)
+			mousePosStart = mousePos = e.getPoint();
+	}
+
+	/**
+	 * If the correct button is hold, draw the rectangle.
+	 */
+	public void mouseDragged(MouseEvent e) {
+		int buttonPressed = e.getModifiersEx() & (MouseEvent.BUTTON1_DOWN_MASK | MouseEvent.BUTTON3_DOWN_MASK); 
+
+		
+		if (buttonPressed != 0) {
+			if (mousePosStart == null)
+				mousePosStart = mousePos = e.getPoint();
+			paintRect();
+		}
+		
+		if (buttonPressed == MouseEvent.BUTTON1_DOWN_MASK) {
+			mousePos = e.getPoint();
+			paintRect();
+		} else if (buttonPressed == (MouseEvent.BUTTON1_DOWN_MASK | MouseEvent.BUTTON3_DOWN_MASK)) {
+			mousePosStart.x += e.getX()-mousePos.x;
+			mousePosStart.y += e.getY()-mousePos.y;
+			mousePos = e.getPoint();
+			paintRect();
+		}
+	}
+
+	/**
+	 * Check the state of the keys and buttons and set the selection accordingly.
+	 */
+	public void mouseReleased(MouseEvent e) {
+		if (e.getButton() != MouseEvent.BUTTON1)
+			return;
+		if (mousePos == null || mousePosStart == null)
+			return; // injected release from outside
+			
+		// disable the selection rect
+		paintRect();
+		Rectangle r = getSelectionRectangle();
+		mousePosStart = null;
+		mousePos = null;
+
+		boolean shift = (e.getModifiersEx() & MouseEvent.SHIFT_DOWN_MASK) != 0;
+		boolean alt = (e.getModifiersEx() & MouseEvent.ALT_DOWN_MASK) != 0;
+		boolean ctrl = (e.getModifiersEx() & MouseEvent.CTRL_DOWN_MASK) != 0;
+		if ((e.getModifiersEx() & MouseEvent.BUTTON3_DOWN_MASK) == 0)
+			selectionEndedListener.selectionEnded(r, alt, shift, ctrl);
+	}
+
+
+	/**
+	 * Draw a selection rectangle on screen. If already a rectangle is drawn,
+	 * it is removed instead.
+	 */
+	private void paintRect() {
+		if (mousePos == null || mousePosStart == null || mousePos == mousePosStart)
+			return;
+		Graphics g = nc.getGraphics();
+		g.setColor(Color.BLACK);
+		g.setXORMode(Color.WHITE);
+
+		Rectangle r = getSelectionRectangle();
+		g.drawRect(r.x,r.y,r.width,r.height);
+	}
+
+	/**
+	 * Calculate and return the current selection rectangle
+	 * @return A rectangle that spans from mousePos to mouseStartPos
+	 */
+	private Rectangle getSelectionRectangle() {
+		int x = mousePosStart.x;
+		int y = mousePosStart.y;
+		int w = mousePos.x - mousePosStart.x;
+		int h = mousePos.y - mousePosStart.y;
+		if (w < 0) {
+			x += w;
+			w = -w;
+		}
+		if (h < 0) {
+			y += h;
+			h = -h;
+		}
+		
+		if (aspectRatio) {
+			// keep the aspect ration by shrinking the rectangle
+			double aspectRatio = (double)nc.getWidth()/nc.getHeight();
+			if ((double)w/h > aspectRatio) {
+				int neww = (int)(h*aspectRatio);
+				if (mousePos.x < mousePosStart.x)
+					x += w-neww;
+				w = neww;
+			} else {
+				int newh = (int)(w/aspectRatio);
+				if (mousePos.y < mousePosStart.y)
+					y += h-newh;
+				h = newh;
+			}
+		}
+		
+		return new Rectangle(x,y,w,h);
+	}
+
+	/**
+	 * If the action goes inactive, remove the selection rectangle from screen
+	 */
+	public void propertyChange(PropertyChangeEvent evt) {
+		if (evt.getPropertyName().equals("active") && !(Boolean)evt.getNewValue() && mousePosStart != null) {
+			paintRect();
+			mousePosStart = null;
+			mousePos = null;
+		}
+	}
+
+	/**
+	 * Return a list of all objects in the rectangle, respecting the different
+	 * modifier.
+	 * @param alt Whether the alt key was pressed, which means select all objects
+	 * 		that are touched, instead those which are completly covered. Also 
+	 * 		select whole ways instead of segments.
+	 */
+	public Collection<OsmPrimitive> getObjectsInRectangle(Rectangle r, boolean alt) {
+		Collection<OsmPrimitive> selection = new LinkedList<OsmPrimitive>();
+
+		// whether user only clicked, not dragged.
+		boolean clicked = r.width <= 2 && r.height <= 2;
+		Point center = new Point(r.x+r.width/2, r.y+r.height/2);
+
+		if (clicked) {
+			OsmPrimitive osm = nc.getNearest(center, alt);
+			if (osm != null)
+				selection.add(osm);
+		} else {
+			// nodes
+			for (Node n : Main.ds.nodes) {
+				if (!n.deleted && r.contains(nc.getPoint(n.eastNorth)))
+					selection.add(n);
+			}
+			
+			// pending segments
+			for (Segment s : Main.ds.segments)
+				if (!s.deleted && rectangleContainSegment(r, alt, s))
+					selection.add(s);
+
+			// ways
+			for (Way w : Main.ds.ways) {
+				if (w.deleted)
+					continue;
+				boolean someSelectableSegment = false;
+				boolean wholeWaySelected = true;
+				for (Segment s : w.segments) {
+					if (s.incomplete)
+						continue;
+					someSelectableSegment = true;
+					if (!rectangleContainSegment(r, alt, s)) {
+						wholeWaySelected = false;
+						break;
+					}
+				}
+				if (someSelectableSegment && wholeWaySelected)
+					selection.add(w);
+			}
+		}
+		return selection;
+	}
+
+	/**
+	 * Decide whether the segment is in the rectangle Return 
+	 * <code>true</code>, if it is in or false if not.
+	 * 
+	 * @param r			The rectangle, in which the segment has to be.
+	 * @param alt		Whether user pressed the Alt key
+	 * @param ls		The segment.
+	 * @return <code>true</code>, if the Segment was added to the selection.
+	 */
+	private boolean rectangleContainSegment(Rectangle r, boolean alt, Segment ls) {
+		if (ls.incomplete)
+			return false;
+		if (alt) {
+			Point p1 = nc.getPoint(ls.from.eastNorth);
+			Point p2 = nc.getPoint(ls.to.eastNorth);
+			if (r.intersectsLine(p1.x, p1.y, p2.x, p2.y))
+				return true;
+		} else {
+			if (r.contains(nc.getPoint(ls.from.eastNorth))
+					&& r.contains(nc.getPoint(ls.to.eastNorth)))
+				return true;
+		}
+		return false;
+	}
+	
+	public void mouseClicked(MouseEvent e) {}
+	public void mouseEntered(MouseEvent e) {}
+	public void mouseExited(MouseEvent e) {}
+	public void mouseMoved(MouseEvent e) {}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java	(revision 321)
@@ -0,0 +1,76 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.dialogs;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.event.KeyEvent;
+import java.util.Collection;
+
+import javax.swing.JLabel;
+import javax.swing.JScrollPane;
+import javax.swing.JTree;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.DefaultTreeCellRenderer;
+import javax.swing.tree.DefaultTreeModel;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.command.Command;
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer.CommandQueueListener;
+
+public class CommandStackDialog extends ToggleDialog implements CommandQueueListener {
+
+	private DefaultTreeModel treeModel = new DefaultTreeModel(new DefaultMutableTreeNode());
+    private JTree tree = new JTree(treeModel);
+
+	public CommandStackDialog(final MapFrame mapFrame) {
+		super(tr("Command Stack"), "commandstack", tr("Open a list of all commands (undo buffer)."), KeyEvent.VK_O, 100);
+		Main.main.undoRedo.listenerCommands.add(this);
+			
+		tree.setRootVisible(false);
+		tree.setShowsRootHandles(true);
+		tree.expandRow(0);
+		tree.setCellRenderer(new DefaultTreeCellRenderer(){
+			@Override public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
+				super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
+				DefaultMutableTreeNode v = (DefaultMutableTreeNode)value;
+				if (v.getUserObject() instanceof JLabel) {
+					JLabel l = (JLabel)v.getUserObject();
+					setIcon(l.getIcon());
+					setText(l.getText());
+				}
+				return this;
+			}
+		});
+		tree.setVisibleRowCount(8);
+		add(new JScrollPane(tree), BorderLayout.CENTER);
+	}
+
+	@Override public void setVisible(boolean v) {
+		if (v)
+			buildList();
+		else if (tree != null)
+			treeModel.setRoot(new DefaultMutableTreeNode());
+		super.setVisible(v);
+	}
+
+	private void buildList() {
+		if (Main.map == null || Main.map.mapView == null || Main.map.mapView.editLayer == null)
+			return;
+		Collection<Command> commands = Main.main.undoRedo.commands;
+		DefaultMutableTreeNode root = new DefaultMutableTreeNode();
+		for (Command c : commands)
+			root.add(c.description());
+		treeModel.setRoot(root);
+		tree.scrollRowToVisible(treeModel.getChildCount(root)-1);
+	}
+
+	public void commandChanged(int queueSize, int redoSize) {
+		if (!isVisible())
+			return;
+        treeModel.setRoot(new DefaultMutableTreeNode());
+		buildList();
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java	(revision 321)
@@ -0,0 +1,172 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.dialogs;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.GridLayout;
+import java.awt.Point;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.Map;
+
+import javax.swing.DefaultListModel;
+import javax.swing.JButton;
+import javax.swing.JList;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.ListSelectionModel;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.command.ConflictResolveCommand;
+import org.openstreetmap.josm.data.SelectionChangedListener;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.osm.visitor.SimplePaintVisitor;
+import org.openstreetmap.josm.data.osm.visitor.Visitor;
+import org.openstreetmap.josm.gui.ConflictResolver;
+import org.openstreetmap.josm.gui.NavigatableComponent;
+import org.openstreetmap.josm.gui.OsmPrimitivRenderer;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+public final class ConflictDialog extends ToggleDialog {
+
+	public final Map<OsmPrimitive, OsmPrimitive> conflicts = new HashMap<OsmPrimitive, OsmPrimitive>();
+	private final DefaultListModel model = new DefaultListModel();
+	private final JList displaylist = new JList(model);
+
+	public ConflictDialog() {
+		super(tr("Conflict"), "conflict", tr("Merging conflicts."), KeyEvent.VK_C, 100);
+		displaylist.setCellRenderer(new OsmPrimitivRenderer());
+		displaylist.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
+		displaylist.addMouseListener(new MouseAdapter(){
+			@Override public void mouseClicked(MouseEvent e) {
+				if (e.getClickCount() >= 2)
+					resolve();
+			}
+		});
+		add(new JScrollPane(displaylist), BorderLayout.CENTER);
+
+		JPanel buttonPanel = new JPanel(new GridLayout(1,2));
+		JButton button = new JButton(tr("Resolve"), ImageProvider.get("dialogs", "conflict"));
+		button.setToolTipText(tr("Open a merge dialog of all selected items in the list above."));
+		button.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				resolve();
+			}
+		});
+		button.putClientProperty("help", "Dialog/Conflict/Resolve");
+		buttonPanel.add(button);
+
+		button = new JButton(tr("Select"), ImageProvider.get("mapmode/selection/select"));
+		button.setToolTipText(tr("Set the selected elements on the map to the selected items in the list above."));
+		button.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				Collection<OsmPrimitive> sel = new LinkedList<OsmPrimitive>();
+				for (Object o : displaylist.getSelectedValues())
+					sel.add((OsmPrimitive)o);
+				Main.ds.setSelected(sel);
+			}
+		});
+		button.putClientProperty("help", "Dialog/Conflict/Select");
+		buttonPanel.add(button);
+
+		add(buttonPanel, BorderLayout.SOUTH);
+
+		DataSet.listeners.add(new SelectionChangedListener(){
+			public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
+				displaylist.clearSelection();
+				for (OsmPrimitive osm : newSelection) {
+					if (conflicts.containsKey(osm)) {
+						int pos = model.indexOf(osm);
+						displaylist.addSelectionInterval(pos, pos);
+					}
+				}
+			}
+		});
+		displaylist.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
+			public void valueChanged(ListSelectionEvent e) {
+				Main.map.mapView.repaint();
+			}
+		});
+	}
+
+	private final void resolve() {
+		if (displaylist.getSelectedIndex() == -1) {
+			JOptionPane.showMessageDialog(Main.parent,tr("Please select something from the conflict list."));
+			return;
+		}
+		Map<OsmPrimitive, OsmPrimitive> sel = new HashMap<OsmPrimitive, OsmPrimitive>();
+		for (int i : displaylist.getSelectedIndices()) {
+			OsmPrimitive s = (OsmPrimitive)model.get(i);
+			sel.put(s, conflicts.get(s));
+		}
+		ConflictResolver resolver = new ConflictResolver(sel);
+		int answer = JOptionPane.showConfirmDialog(Main.parent, resolver, tr("Resolve Conflicts"), JOptionPane.OK_CANCEL_OPTION);
+		if (answer != JOptionPane.OK_OPTION)
+			return;
+		Main.main.undoRedo.add(new ConflictResolveCommand(resolver.conflicts, sel));
+		Main.map.mapView.repaint();
+	}
+
+	public final void rebuildList() {
+		model.removeAllElements();
+		for (OsmPrimitive osm : this.conflicts.keySet())
+			if (osm instanceof Node)
+				model.addElement(osm);
+		for (OsmPrimitive osm : this.conflicts.keySet())
+			if (osm instanceof Segment)
+				model.addElement(osm);
+		for (OsmPrimitive osm : this.conflicts.keySet())
+			if (osm instanceof Way)
+				model.addElement(osm);
+	}
+
+	public final void add(Map<OsmPrimitive, OsmPrimitive> conflicts) {
+		this.conflicts.putAll(conflicts);
+		rebuildList();
+	}
+
+	/**
+	 * Paint all conflicts that can be expressed on the main window.
+	 */
+	public void paintConflicts(final Graphics g, final NavigatableComponent nc) {
+		Color preferencesColor = SimplePaintVisitor.getPreferencesColor("conflict", Color.gray);
+		if (preferencesColor.equals(Color.BLACK))
+			return;
+		g.setColor(preferencesColor);
+		Visitor conflictPainter = new Visitor(){
+			public void visit(Node n) {
+				Point p = nc.getPoint(n.eastNorth);
+				g.drawRect(p.x-1, p.y-1, 2, 2);
+			}
+			public void visit(Segment ls) {
+				if (ls.incomplete)
+					return;
+				Point p1 = nc.getPoint(ls.from.eastNorth);
+				Point p2 = nc.getPoint(ls.to.eastNorth);
+				g.drawLine(p1.x, p1.y, p2.x, p2.y);
+			}
+			public void visit(Way w) {
+				for (Segment ls : w.segments)
+					visit(ls);
+			}
+		};
+		for (Object o : displaylist.getSelectedValues())
+			conflicts.get(o).visit(conflictPainter);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java	(revision 321)
@@ -0,0 +1,186 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.dialogs;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.GridBagLayout;
+import java.awt.GridLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyEvent;
+import java.util.Calendar;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import javax.swing.JButton;
+import javax.swing.JComponent;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.table.DefaultTableCellRenderer;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableCellRenderer;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.SelectionChangedListener;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.tools.GBC;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * History dialog works like follows:
+ *
+ * There is a history cache hold in the back for primitives of the last refresh.
+ * When the user refreshes, this cache is cleared and all currently selected items
+ * are reloaded.
+ * If the user has selected at least one primitive not in the cache, the list
+ * is not displayed. Elsewhere, the list of all changes of all currently selected
+ * objects are displayed.
+ *
+ * @author imi
+ */
+public class HistoryDialog extends ToggleDialog implements SelectionChangedListener {
+
+	public static final Date unifyDate(Date d) {
+		Calendar c = Calendar.getInstance();
+		c.setTime(d);
+		c.set(Calendar.MINUTE, 0);
+		c.set(Calendar.SECOND, 0);
+		return c.getTime();
+	}
+
+	private static class HistoryItem implements Comparable<HistoryItem> {
+		OsmPrimitive osm;
+		boolean visible;
+
+		public int compareTo(HistoryItem o) {
+			return unifyDate(osm.timestamp).compareTo(unifyDate(o.osm.timestamp));
+		}
+	}
+
+	private final DefaultTableModel data = new DefaultTableModel(){
+		@Override public boolean isCellEditable(int row, int column) {
+			return false;
+		}
+	};
+
+	/**
+	 * Main table. 3 columns:
+	 * Object | Date | visible (icon, no text)
+	 */
+	private JTable history = new JTable(data);
+	private JScrollPane historyPane = new JScrollPane(history);
+
+	private Map<OsmPrimitive, List<HistoryItem>> cache = new HashMap<OsmPrimitive, List<HistoryItem>>();
+	private JLabel notLoaded = new JLabel("<html><i>"+tr("Click Reload to refresh list")+"</i></html>");
+	private JButton reloadButton = new JButton(tr("Reload"), ImageProvider.get("dialogs/refresh"));
+	private JButton revertButton = new JButton(tr("Revert"), ImageProvider.get("dialogs/revert"));
+
+	public HistoryDialog() {
+		super(tr("History"), "history", tr("Display the history of all selected items."), KeyEvent.VK_H, 150);
+		historyPane.setVisible(false);
+		notLoaded.setVisible(true);
+		notLoaded.setHorizontalAlignment(JLabel.CENTER);
+
+		history.setDefaultRenderer(Object.class, new DefaultTableCellRenderer(){
+			@Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
+				return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
+			}
+		});
+		data.setColumnIdentifiers(new Object[]{tr("Object"),tr("Date"),""});
+		history.getColumnModel().getColumn(0).setPreferredWidth(200);
+		history.getColumnModel().getColumn(1).setPreferredWidth(200);
+		history.getColumnModel().getColumn(2).setPreferredWidth(20);
+		final TableCellRenderer oldRenderer = history.getTableHeader().getDefaultRenderer();
+		history.getTableHeader().setDefaultRenderer(new DefaultTableCellRenderer(){
+			@Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
+				JComponent c = (JComponent)oldRenderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
+				if (!value.equals(""))
+					return c;
+				JLabel l = new JLabel(ImageProvider.get("misc","showhide"));
+				l.setForeground(c.getForeground());
+				l.setBackground(c.getBackground());
+				l.setFont(c.getFont());
+				l.setBorder(c.getBorder());
+				l.setOpaque(true);
+				return l;
+			}
+		});
+
+		JPanel centerPanel = new JPanel(new GridBagLayout());
+		centerPanel.add(notLoaded, GBC.eol().fill(GBC.BOTH));
+		centerPanel.add(historyPane, GBC.eol().fill(GBC.BOTH));
+		add(centerPanel, BorderLayout.CENTER);
+
+		JPanel buttons = new JPanel(new GridLayout(1,2));
+		buttons.add(reloadButton);
+		buttons.add(revertButton);
+		add(buttons, BorderLayout.SOUTH);
+
+		reloadButton.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				reload();
+			}
+		});
+		reloadButton.setToolTipText(tr("Reload all currently selected objects and refresh the list."));
+		reloadButton.putClientProperty("help", "Dialog/History/Reload");
+		
+		revertButton.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				JOptionPane.showMessageDialog(Main.parent, tr("Not implemented yet."));
+			}
+		});
+		revertButton.setToolTipText(tr("Revert the state of all currently selected objects to the version selected in the history list."));
+		revertButton.putClientProperty("help", "Dialog/History/Revert");
+		
+		DataSet.listeners.add(this);
+	}
+
+
+	@Override public void setVisible(boolean b) {
+		super.setVisible(b);
+		if (b)
+			update();
+	}
+
+
+	public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
+		if (isVisible())
+			update();
+	}
+
+	/**
+	 * Identify all new objects in the selection and if any, hide the list.
+	 * Else, update the list with the selected items shown.
+	 */
+	private void update() {
+		Collection<OsmPrimitive> sel = Main.ds.getSelected();
+		if (!cache.keySet().containsAll(sel)) {
+			historyPane.setVisible(false);
+			notLoaded.setVisible(true);
+		} else {
+			SortedSet<HistoryItem> orderedHistory = new TreeSet<HistoryItem>();
+			for (OsmPrimitive osm : sel)
+				orderedHistory.addAll(cache.get(osm));
+			data.setRowCount(0);
+			for (HistoryItem i : orderedHistory)
+				data.addRow(new Object[]{i.osm, i.osm.timestamp, i.visible});
+			historyPane.setVisible(true);
+			notLoaded.setVisible(false);
+		}
+	}
+
+	void reload() {
+		JOptionPane.showMessageDialog(Main.parent, tr("Not implemented yet."));
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 321)
@@ -0,0 +1,302 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.dialogs;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.GridLayout;
+import java.awt.Point;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.util.Collection;
+
+import javax.swing.AbstractAction;
+import javax.swing.Action;
+import javax.swing.DefaultListCellRenderer;
+import javax.swing.DefaultListModel;
+import javax.swing.Icon;
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.ListSelectionModel;
+import javax.swing.UIManager;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.gui.layer.Layer.LayerChangeListener;
+import org.openstreetmap.josm.tools.DontShowAgainInfo;
+import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.ImageProvider.OverlayPosition;
+
+/**
+ * A component that manages the list of all layers and react to selection changes
+ * by setting the active layer in the mapview.
+ *
+ * @author imi
+ */
+public class LayerListDialog extends ToggleDialog implements LayerChangeListener {
+
+	/**
+	 * The last layerlist created. Used to update the list in the Show/Hide and Delete actions.
+	 * TODO: Replace with Listener-Pattern.
+	 */
+	static JList instance;
+	private JScrollPane listScrollPane;
+
+	public final static class DeleteLayerAction extends AbstractAction {
+
+		private final Layer layer;
+
+		public DeleteLayerAction(Layer layer) {
+			super(tr("Delete"), ImageProvider.get("dialogs", "delete"));
+			putValue(SHORT_DESCRIPTION, tr("Delete the selected layer."));
+			putValue("help", "Dialog/LayerList/Delete");
+			this.layer = layer;
+		}
+
+		public void actionPerformed(ActionEvent e) {
+			int sel = instance.getSelectedIndex();
+			Layer l = layer != null ? layer : (Layer)instance.getSelectedValue();
+			if (l instanceof OsmDataLayer && !DontShowAgainInfo.show("delete_layer", tr("Do you really want to delete the whole layer?")))
+				return;
+			Main.main.removeLayer(l);
+			if (sel >= instance.getModel().getSize())
+				sel = instance.getModel().getSize()-1;
+			if (instance.getSelectedValue() == null)
+				instance.setSelectedIndex(sel);
+			if (Main.map != null)
+				Main.map.mapView.setActiveLayer((Layer)instance.getSelectedValue());
+		}
+	}
+
+	public final static class ShowHideLayerAction extends AbstractAction {
+		private final Layer layer;
+
+		public ShowHideLayerAction(Layer layer) {
+			super(tr("Show/Hide"), ImageProvider.get("dialogs", "showhide"));
+			putValue(SHORT_DESCRIPTION, tr("Toggle visible state of the selected layer."));
+			putValue("help", "Dialog/LayerList/ShowHide");
+			this.layer = layer;
+		}
+
+		public void actionPerformed(ActionEvent e) {
+			Layer l = layer == null ? (Layer)instance.getSelectedValue() : layer;
+			l.visible = !l.visible;
+			Main.map.mapView.repaint();
+			instance.repaint();
+		}
+	}
+
+	public final static class ShowHideMarkerText extends AbstractAction {
+		private final Layer layer;
+
+		public ShowHideMarkerText(Layer layer) {
+			super(tr("Show/Hide Text"), ImageProvider.get("dialogs", "showhide"));
+			putValue(SHORT_DESCRIPTION, tr("Toggle visible state of the marker text."));
+			putValue("help", "Dialog/LayerList/ShowHideMarkerText");
+			this.layer = layer;
+		}
+
+		public void actionPerformed(ActionEvent e) {
+			Layer l = layer == null ? (Layer)instance.getSelectedValue() : layer;
+			String current = Main.pref.get("marker.show "+l.name,"show");
+			Main.pref.put("marker.show "+l.name, current.equalsIgnoreCase("show") ? "hide" : "show");
+			Main.map.mapView.repaint();
+			instance.repaint();
+		}
+	}
+
+	/**
+	 * The data model for the list component.
+	 */
+	DefaultListModel model = new DefaultListModel();
+	/**
+	 * The merge action. This is only called, if the current selection and its
+	 * item below are editable datasets and the merge button is clicked.
+	 */
+	private final JButton mergeButton = new JButton(ImageProvider.get("dialogs", "mergedown"));
+	/**
+	 * Button for moving layer up.
+	 */
+	private JButton upButton = new JButton(ImageProvider.get("dialogs", "up"));
+	/**
+	 * Button for moving layer down.
+	 */
+	private JButton downButton = new JButton(ImageProvider.get("dialogs", "down"));
+	/**
+	 * Button for delete layer.
+	 */
+	private Action deleteAction = new DeleteLayerAction(null);
+
+	/**
+	 * Create an layerlist and attach it to the given mapView.
+	 */
+	public LayerListDialog(MapFrame mapFrame) {
+		super(tr("Layers"), "layerlist", tr("Open a list of all loaded layers."), KeyEvent.VK_L, 100);
+		instance = new JList(model);
+		listScrollPane = new JScrollPane(instance);
+		add(listScrollPane, BorderLayout.CENTER);
+		instance.setBackground(UIManager.getColor("Button.background"));
+		instance.setCellRenderer(new DefaultListCellRenderer(){
+			@Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
+				Layer layer = (Layer)value;
+				JLabel label = (JLabel)super.getListCellRendererComponent(list,
+						layer.name, index, isSelected, cellHasFocus);
+				Icon icon = layer.getIcon();
+				if (!layer.visible)
+					icon = ImageProvider.overlay(icon, "overlay/invisible", OverlayPosition.SOUTHEAST);
+				label.setIcon(icon);
+				label.setToolTipText(layer.getToolTipText());
+				return label;
+			}
+		});
+
+		final MapView mapView = mapFrame.mapView;
+
+		Collection<Layer> data = mapView.getAllLayers();
+		for (Layer l : data)
+			model.addElement(l);
+
+		instance.setSelectedValue(mapView.getActiveLayer(), true);
+		instance.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+		instance.addListSelectionListener(new ListSelectionListener(){
+			public void valueChanged(ListSelectionEvent e) {
+				if (instance.getModel().getSize() == 0)
+					return;
+				if (instance.getSelectedIndex() == -1)
+					instance.setSelectedIndex(e.getFirstIndex());
+				mapView.setActiveLayer((Layer)instance.getSelectedValue());
+			}
+		});
+		Layer.listeners.add(this);
+
+		instance.addMouseListener(new MouseAdapter(){
+			private void openPopup(MouseEvent e) {
+				Point p = listScrollPane.getMousePosition();
+				if (p == null)
+					return; // user is faster than swing with mouse movement
+				int index = instance.locationToIndex(e.getPoint());
+				Layer layer = (Layer)instance.getModel().getElementAt(index);
+				LayerListPopup menu = new LayerListPopup(instance, layer);
+				menu.show(listScrollPane, p.x, p.y-3);
+			}
+			@Override public void mousePressed(MouseEvent e) {
+				if (e.isPopupTrigger())
+					openPopup(e);
+			}
+			@Override public void mouseReleased(MouseEvent e) {
+				if (e.isPopupTrigger())
+					openPopup(e);
+			}
+		});
+
+
+		// Buttons
+		JPanel buttonPanel = new JPanel(new GridLayout(1, 5));
+
+		ActionListener upDown = new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				Layer l = (Layer)instance.getSelectedValue();
+				int sel = instance.getSelectedIndex();
+				int selDest = e.getActionCommand().equals("up") ? sel-1 : sel+1;
+				mapView.moveLayer(l, selDest);
+				model.set(sel, model.get(selDest));
+				model.set(selDest, l);
+				instance.setSelectedIndex(selDest);
+				updateButtonEnabled();
+				mapView.repaint();
+			}
+		};
+
+		upButton.setToolTipText(tr("Move the selected layer one row up."));
+		upButton.addActionListener(upDown);
+		upButton.setActionCommand("up");
+		upButton.putClientProperty("help", "Dialog/LayerList/Up");
+		buttonPanel.add(upButton);
+
+		downButton.setToolTipText(tr("Move the selected layer one row down."));
+		downButton.addActionListener(upDown);
+		downButton.setActionCommand("down");
+		downButton.putClientProperty("help", "Dialog/LayerList/Down");
+		buttonPanel.add(downButton);
+
+		JButton showHideButton = new JButton(new ShowHideLayerAction(null));
+		showHideButton.setText("");
+		buttonPanel.add(showHideButton);
+
+		JButton deleteButton = new JButton(deleteAction);
+		deleteButton.setText("");
+		buttonPanel.add(deleteButton);
+
+		mergeButton.setToolTipText(tr("Merge the selected layer into the layer directly below."));
+		mergeButton.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				Layer lFrom = (Layer)instance.getSelectedValue();
+				Layer lTo = (Layer)model.get(instance.getSelectedIndex()+1);
+				lTo.mergeFrom(lFrom);
+				instance.setSelectedValue(lTo, true);
+				mapView.removeLayer(lFrom);
+			}
+		});
+		mergeButton.putClientProperty("help", "Dialog/LayerList/Merge");
+		buttonPanel.add(mergeButton);
+
+		add(buttonPanel, BorderLayout.SOUTH);
+
+		updateButtonEnabled();
+	}
+
+	/**
+	 * Updates the state of the Buttons.
+	 */
+	void updateButtonEnabled() {
+		int sel = instance.getSelectedIndex();
+		Layer l = (Layer)instance.getSelectedValue();
+		boolean enable = model.getSize() > 1;
+		enable = enable && sel < model.getSize()-1;
+		enable = enable && l.isMergable((Layer)model.get(sel+1));
+		mergeButton.setEnabled(enable);
+		upButton.setEnabled(sel > 0);
+		downButton.setEnabled(sel < model.getSize()-1);
+		deleteAction.setEnabled(!model.isEmpty());
+	}
+
+	/**
+	 * Add the new layer to the list.
+	 */
+	public void layerAdded(Layer newLayer) {
+		model.add(0, newLayer);
+		updateButtonEnabled();
+	}
+
+	public void layerRemoved(Layer oldLayer) {
+		model.removeElement(oldLayer);
+		if (model.isEmpty()) {
+			Layer.listeners.remove(this);
+			return;
+		}
+		if (instance.getSelectedIndex() == -1)
+			instance.setSelectedIndex(0);
+		updateButtonEnabled();
+	}
+
+	/**
+	 * If the newLayer is not the actual selection, select it.
+	 */
+	public void activeLayerChange(Layer oldLayer, Layer newLayer) {
+		if (newLayer != instance.getSelectedValue())
+			instance.setSelectedValue(newLayer, true);
+		updateButtonEnabled();
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListPopup.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListPopup.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListPopup.java	(revision 321)
@@ -0,0 +1,38 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.dialogs;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.Component;
+import java.awt.event.ActionEvent;
+
+import javax.swing.AbstractAction;
+import javax.swing.JList;
+import javax.swing.JOptionPane;
+import javax.swing.JPopupMenu;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * Popup menu handler for the layer list.
+ */
+public class LayerListPopup extends JPopupMenu {
+
+	public final static class InfoAction extends AbstractAction {
+	    private final Layer layer;
+	    public InfoAction(Layer layer) {
+	    	super(tr("Info"), ImageProvider.get("info"));
+		    this.layer = layer;
+	    }
+	    public void actionPerformed(ActionEvent e) {
+	    	JOptionPane.showMessageDialog(Main.parent, layer.getInfoComponent());
+	    }
+    }
+
+	public LayerListPopup(final JList layers, final Layer layer) {
+		for (Component c : layer.getMenuEntries())
+			add(c);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java	(revision 321)
@@ -0,0 +1,399 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.dialogs;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
+import static org.xnap.commons.i18n.I18n.marktr;
+
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Font;
+import java.awt.GridBagLayout;
+import java.awt.GridLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.FocusAdapter;
+import java.awt.event.FocusEvent;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.TreeSet;
+import java.util.Vector;
+import java.util.Map.Entry;
+
+import javax.swing.Box;
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JDialog;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.JTextField;
+import javax.swing.ListSelectionModel;
+import javax.swing.table.DefaultTableCellRenderer;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.text.JTextComponent;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.command.ChangePropertyCommand;
+import org.openstreetmap.josm.command.SequenceCommand;
+import org.openstreetmap.josm.data.SelectionChangedListener;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.gui.preferences.TaggingPresetPreference;
+import org.openstreetmap.josm.gui.tagging.TaggingCellRenderer;
+import org.openstreetmap.josm.gui.tagging.ForwardActionListener;
+import org.openstreetmap.josm.gui.tagging.TaggingPreset;
+import org.openstreetmap.josm.tools.AutoCompleteComboBox;
+import org.openstreetmap.josm.tools.GBC;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * This dialog displays the properties of the current selected primitives.
+ *
+ * If no object is selected, the dialog list is empty.
+ * If only one is selected, all properties of this object are selected.
+ * If more than one object are selected, the sum of all properties are displayed. If the
+ * different objects share the same property, the shared value is displayed. If they have
+ * different values, all of them are put in a combo box and the string "&lt;different&gt;"
+ * is displayed in italic.
+ *
+ * Below the list, the user can click on an add, modify and delete property button to
+ * edit the table selection value.
+ *
+ * The command is applied to all selected entries.
+ *
+ * @author imi
+ */
+public class PropertiesDialog extends ToggleDialog implements SelectionChangedListener {
+
+	/**
+	 * Watches for double clicks and from editing or new property, depending on the
+	 * location, the click was.
+	 * @author imi
+	 */
+	public class DblClickWatch extends MouseAdapter {
+		@Override public void mouseClicked(MouseEvent e) {
+			if (e.getClickCount() < 2)
+				return;
+			if (e.getSource() instanceof JScrollPane)
+				add();
+			else {
+				int row = propertyTable.rowAtPoint(e.getPoint());
+				edit(row);
+			}
+		}
+	}
+
+	/**
+	 * Edit the value in the table row
+	 * @param row 	The row of the table, from which the value is edited.
+	 */
+	void edit(int row) {
+		String key = data.getValueAt(row, 0).toString();
+		Collection<OsmPrimitive> sel = Main.ds.getSelected();
+		if (sel.isEmpty()) {
+			JOptionPane.showMessageDialog(Main.parent, tr("Please select the objects you want to change properties for."));
+			return;
+		}
+		String msg = "<html>"+trn("This will change {0} object.", "This will change {0} objects.", sel.size(), sel.size())+"<br><br>("+tr("An empty value deletes the key.", key)+")</html>";
+		
+		JPanel panel = new JPanel(new BorderLayout());
+		panel.add(new JLabel(msg), BorderLayout.NORTH);
+
+		JPanel p = new JPanel(new GridBagLayout());
+		panel.add(p, BorderLayout.CENTER);
+		
+		final JTextField keyField = new JTextField(key);
+		p.add(new JLabel(tr("Key")), GBC.std());
+		p.add(Box.createHorizontalStrut(10), GBC.std());
+		p.add(keyField, GBC.eol().fill(GBC.HORIZONTAL));
+				
+		final JComboBox combo = (JComboBox)data.getValueAt(row, 1);
+		p.add(new JLabel(tr("Value")), GBC.std());
+		p.add(Box.createHorizontalStrut(10), GBC.std());
+		p.add(combo, GBC.eol().fill(GBC.HORIZONTAL));
+
+		final JOptionPane optionPane = new JOptionPane(panel, JOptionPane.QUESTION_MESSAGE, JOptionPane.OK_CANCEL_OPTION){
+			@Override public void selectInitialValue() {
+				combo.requestFocusInWindow();
+				combo.getEditor().selectAll();
+			}
+		};
+		final JDialog dlg = optionPane.createDialog(Main.parent, tr("Change values?"));
+		combo.getEditor().addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				optionPane.setValue(JOptionPane.OK_OPTION);
+				dlg.setVisible(false);
+			}
+		});
+		String oldComboEntry = combo.getEditor().getItem().toString();
+		dlg.setVisible(true);
+
+		Object answer = optionPane.getValue();
+		if (answer == null || answer == JOptionPane.UNINITIALIZED_VALUE ||
+				(answer instanceof Integer && (Integer)answer != JOptionPane.OK_OPTION)) {
+			combo.getEditor().setItem(oldComboEntry);
+			return;
+		}
+
+		String value = combo.getEditor().getItem().toString();
+		if (value.equals(tr("<different>")))
+			return;
+		if (value.equals(""))
+			value = null; // delete the key
+		String newkey = keyField.getText();
+		if (newkey.equals("")) {
+			newkey = key;
+			value = null; // delete the key instead
+		}
+		if (key.equals(newkey) || value == null)
+			Main.main.undoRedo.add(new ChangePropertyCommand(sel, newkey, value));
+		else {
+			Main.main.undoRedo.add(new SequenceCommand(trn("Change properties of {0} object", "Change properties of {0} objects", sel.size(), sel.size()),
+					new ChangePropertyCommand(sel, key, null),
+					new ChangePropertyCommand(sel, newkey, value)));
+		}
+
+		if (!key.equals(newkey) || value == null)
+			selectionChanged(sel); // update whole table
+
+		Main.parent.repaint(); // repaint all - drawing could have been changed
+	}
+
+	/**
+	 * Open the add selection dialog and add a new key/value to the table (and
+	 * to the dataset, of course).
+	 */
+	void add() {
+		Collection<OsmPrimitive> sel = Main.ds.getSelected();
+		if (sel.isEmpty()) {
+			JOptionPane.showMessageDialog(Main.parent, tr("Please select objects for which you want to change properties."));
+			return;
+		}
+
+		JPanel p = new JPanel(new BorderLayout());
+		p.add(new JLabel("<html>"+trn("This will change {0} object.","This will change {0} objects.", sel.size(),sel.size())+"<br><br>"+tr("Please select a key")),
+				BorderLayout.NORTH);
+		final TreeMap<String,TreeSet<String>> allData = new TreeMap<String,TreeSet<String>>();
+		for (OsmPrimitive osm : Main.ds.allNonDeletedPrimitives()) {
+			for (String key : osm.keySet()) {
+				TreeSet<String> values = null;
+				if (allData.containsKey(key))
+					values = allData.get(key);
+				else {
+					values = new TreeSet<String>();
+					allData.put(key, values);
+				}
+				values.add(osm.get(key));
+			}
+		}
+		for (int i = 0; i < data.getRowCount(); ++i)
+			allData.remove(data.getValueAt(i, 0));
+		final AutoCompleteComboBox keys = new AutoCompleteComboBox();
+		keys.setPossibleItems(allData.keySet());
+		keys.setEditable(true);
+		
+		p.add(keys, BorderLayout.CENTER);
+
+		JPanel p2 = new JPanel(new BorderLayout());
+		p.add(p2, BorderLayout.SOUTH);
+		p2.add(new JLabel(tr("Please select a value")), BorderLayout.NORTH);
+		final AutoCompleteComboBox values = new AutoCompleteComboBox();
+		values.setEditable(true);
+		p2.add(values, BorderLayout.CENTER);
+	    
+		// get the combo box' editor component
+		JTextComponent editor = (JTextComponent) values.getEditor().getEditorComponent();
+		// Refresh the values model when focus is gained 
+		editor.addFocusListener(new FocusAdapter() {
+            @Override public void focusGained(FocusEvent e) {
+            	String key = keys.getEditor().getItem().toString();
+            	if (allData.containsKey(key)) {
+					values.setPossibleItems(allData.get(key));
+				} else {
+					values.removeAllItems();
+				}
+            }
+        });
+
+		JOptionPane pane = new JOptionPane(p, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION){
+			@Override public void selectInitialValue() {
+				keys.requestFocusInWindow();
+				keys.getEditor().selectAll();
+			}
+		};
+		pane.createDialog(Main.parent, tr("Change values?")).setVisible(true);
+		if (!Integer.valueOf(JOptionPane.OK_OPTION).equals(pane.getValue()))
+			return;
+		String key = keys.getEditor().getItem().toString();
+		String value = values.getEditor().getItem().toString();
+		if (value.equals(""))
+			return;
+		Main.main.undoRedo.add(new ChangePropertyCommand(sel, key, value));
+		selectionChanged(sel); // update table
+		Main.parent.repaint(); // repaint all - drawing could have been changed
+	}
+
+	/**
+	 * Delete the keys from the given row.
+	 * @param row	The row, which key gets deleted from the dataset.
+	 */
+	private void delete(int row) {
+		String key = data.getValueAt(row, 0).toString();
+		Collection<OsmPrimitive> sel = Main.ds.getSelected();
+		Main.main.undoRedo.add(new ChangePropertyCommand(sel, key, null));
+		selectionChanged(sel); // update table
+	}
+
+	/**
+	 * The property data.
+	 */
+	private final DefaultTableModel data = new DefaultTableModel(){
+		@Override public boolean isCellEditable(int row, int column) {
+			return false;
+		}
+		@Override public Class<?> getColumnClass(int columnIndex) {
+			return columnIndex == 1 ? JComboBox.class : String.class;
+		}
+	};
+	/**
+	 * The properties list.
+	 */
+	private final JTable propertyTable = new JTable(data);
+	public JComboBox taggingPresets = new JComboBox();
+
+
+	/**
+	 * Create a new PropertiesDialog
+	 */
+	public PropertiesDialog(MapFrame mapFrame) {
+		super(tr("Properties"), "propertiesdialog", tr("Properties for selected objects."), KeyEvent.VK_P, 150);
+
+		if (TaggingPresetPreference.taggingPresets.size() > 0) {
+			Vector<ActionListener> allPresets = new Vector<ActionListener>();
+			for (final TaggingPreset p : TaggingPresetPreference.taggingPresets)
+				allPresets.add(new ForwardActionListener(this, p));
+
+			allPresets.add(0, new ForwardActionListener(this, new TaggingPreset()));
+			taggingPresets.setModel(new DefaultComboBoxModel(allPresets));
+			JPanel north = new JPanel(new GridBagLayout());
+			north.add(getComponent(0),GBC.eol().fill(GBC.HORIZONTAL));
+			north.add(taggingPresets,GBC.eol().fill(GBC.HORIZONTAL));
+			add(north, BorderLayout.NORTH);
+		}
+		taggingPresets.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				TaggingPreset preset = ((ForwardActionListener)taggingPresets.getSelectedItem()).preset;
+				preset.actionPerformed(e);
+				taggingPresets.setSelectedItem(null);
+			}
+		});
+		taggingPresets.setRenderer(new TaggingCellRenderer());
+
+		data.setColumnIdentifiers(new String[]{tr("Key"),tr("Value")});
+		propertyTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+		propertyTable.setDefaultRenderer(JComboBox.class, new DefaultTableCellRenderer(){
+			@Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
+				Component c = super.getTableCellRendererComponent(table, value, isSelected, false, row, column);
+				if (c instanceof JLabel) {
+					String str = ((JComboBox)value).getEditor().getItem().toString();
+					((JLabel)c).setText(str);
+					if (str.equals(tr("<different>")))
+						c.setFont(c.getFont().deriveFont(Font.ITALIC));
+				}
+				return c;
+			}
+		});
+		propertyTable.setDefaultRenderer(String.class, new DefaultTableCellRenderer(){
+			@Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
+				return super.getTableCellRendererComponent(table, value, isSelected, false, row, column);
+			}
+		});
+		DblClickWatch dblClickWatch = new DblClickWatch();
+		propertyTable.addMouseListener(dblClickWatch);
+		JScrollPane scrollPane = new JScrollPane(propertyTable);
+		scrollPane.addMouseListener(dblClickWatch);
+		add(scrollPane, BorderLayout.CENTER);
+
+		JPanel buttonPanel = new JPanel(new GridLayout(1,3));
+		ActionListener buttonAction = new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				int sel = propertyTable.getSelectedRow();
+				if (e.getActionCommand().equals("Add"))
+					add();
+				else if (e.getActionCommand().equals("Edit")) {
+					if (sel == -1)
+						JOptionPane.showMessageDialog(Main.parent, tr("Please select the row to edit."));
+					else
+						edit(sel);
+				} else if (e.getActionCommand().equals("Delete")) {
+					if (sel == -1)
+						JOptionPane.showMessageDialog(Main.parent, tr("Please select the row to delete."));
+					else
+						delete(sel);
+				}
+			}
+		};
+		buttonPanel.add(createButton(marktr("Add"),tr("Add a new key/value pair to all objects"), KeyEvent.VK_A, buttonAction));
+		buttonPanel.add(createButton(marktr("Edit"),tr( "Edit the value of the selected key for all objects"), KeyEvent.VK_E, buttonAction));
+		buttonPanel.add(createButton(marktr("Delete"),tr("Delete the selected key in all objects"), KeyEvent.VK_D, buttonAction));
+		add(buttonPanel, BorderLayout.SOUTH);
+
+		DataSet.listeners.add(this);
+	}
+
+	private JButton createButton(String name, String tooltip, int mnemonic, ActionListener actionListener) {
+		JButton b = new JButton(tr(name), ImageProvider.get("dialogs", name.toLowerCase()));
+		b.setActionCommand(name);
+		b.addActionListener(actionListener);
+		b.setToolTipText(tooltip);
+		b.setMnemonic(mnemonic);
+		b.putClientProperty("help", "Dialog/Properties/"+name);
+		return b;
+	}
+
+	@Override public void setVisible(boolean b) {
+		super.setVisible(b);
+		if (b)
+			selectionChanged(Main.ds.getSelected());
+	}
+
+	public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
+		if (!isVisible())
+			return;
+		if (propertyTable == null)
+			return; // selection changed may be received in base class constructor before init
+		if (propertyTable.getCellEditor() != null)
+			propertyTable.getCellEditor().cancelCellEditing();
+		data.setRowCount(0);
+
+		Map<String, Integer> valueCount = new HashMap<String, Integer>();
+		TreeMap<String, Collection<String>> props = new TreeMap<String, Collection<String>>();
+		for (OsmPrimitive osm : newSelection) {
+			for (Entry<String, String> e : osm.entrySet()) {
+				Collection<String> value = props.get(e.getKey());
+				if (value == null) {
+					value = new TreeSet<String>();
+					props.put(e.getKey(), value);
+				}
+				value.add(e.getValue());
+				valueCount.put(e.getKey(), valueCount.containsKey(e.getKey()) ? valueCount.get(e.getKey())+1 : 1);
+			}
+		}
+		for (Entry<String, Collection<String>> e : props.entrySet()) {
+			JComboBox value = new JComboBox(e.getValue().toArray());
+			value.setEditable(true);
+			value.getEditor().setItem(e.getValue().size() > 1 || valueCount.get(e.getKey()) != newSelection.size() ? tr("<different>") : e.getValue().iterator().next());
+			data.addRow(new Object[]{e.getKey(), value});
+		}
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java	(revision 321)
@@ -0,0 +1,128 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.dialogs;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.BorderLayout;
+import java.awt.GridLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.LinkedList;
+
+import javax.swing.DefaultListModel;
+import javax.swing.JButton;
+import javax.swing.JList;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.ListSelectionModel;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.SelectionChangedListener;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.gui.OsmPrimitivRenderer;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * A small tool dialog for displaying the current selection. The selection manager
+ * respects clicks into the selection list. Ctrl-click will remove entries from
+ * the list while single click will make the clicked entry the only selection.
+ *
+ * @author imi
+ */
+public class SelectionListDialog extends ToggleDialog implements SelectionChangedListener {
+
+	/**
+	 * The selection's list data.
+	 */
+	private final DefaultListModel list = new DefaultListModel();
+	/**
+	 * The display list.
+	 */
+	private JList displaylist = new JList(list);
+
+	public SelectionListDialog() {
+		super(tr("Current Selection"), "selectionlist", tr("Open a selection list window."), KeyEvent.VK_E, 150);
+		displaylist.setCellRenderer(new OsmPrimitivRenderer());
+		displaylist.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
+		displaylist.addMouseListener(new MouseAdapter(){
+			@Override public void mouseClicked(MouseEvent e) {
+				if (e.getClickCount() < 2)
+					return;
+				updateMap();
+			}
+		});
+
+		add(new JScrollPane(displaylist), BorderLayout.CENTER);
+
+		JPanel buttonPanel = new JPanel(new GridLayout(1,2));
+
+		buttonPanel.add(createButton("Select", "mapmode/selection/select", "Set the selected elements on the map to the selected items in the list above.", new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				updateMap();
+			}
+		}));
+
+		buttonPanel.add(createButton("Reload", "dialogs/refresh", "Refresh the selection list.", new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				selectionChanged(Main.ds.getSelected());
+            }
+		}));
+
+		buttonPanel.add(createButton("Search", "dialogs/search", "Search for objects.", Main.main.menu.search));
+
+		add(buttonPanel, BorderLayout.SOUTH);
+		selectionChanged(Main.ds.getSelected());
+
+		DataSet.listeners.add(this);
+	}
+
+	private JButton createButton(String name, String icon, String tooltip, ActionListener action) {
+		JButton button = new JButton(tr(name), ImageProvider.get(icon));
+		button.setToolTipText(tr(tooltip));
+		button.addActionListener(action);
+		button.putClientProperty("help", "Dialog/SelectionList/"+name);
+		return button;
+	}
+
+	@Override public void setVisible(boolean b) {
+		super.setVisible(b);
+		if (b)
+			selectionChanged(Main.ds.getSelected());
+	}
+
+
+	/**
+	 * Called when the selection in the dataset changed.
+	 * @param newSelection The new selection array.
+	 */
+	public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
+		if (list == null)
+			return; // selection changed may be received in base class constructor before init
+		if (!isVisible())
+			return;
+		OsmPrimitive[] selArr = new OsmPrimitive[newSelection.size()];
+		selArr = newSelection.toArray(selArr);
+		Arrays.sort(selArr);
+		list.setSize(selArr.length);
+		int i = 0;
+		for (OsmPrimitive osm : selArr)
+			list.setElementAt(osm, i++);
+	}
+
+	/**
+	 * Sets the selection of the map to the current selected items.
+	 */
+	public void updateMap() {
+		Collection<OsmPrimitive> sel = new LinkedList<OsmPrimitive>();
+		for (int i = 0; i < list.getSize(); ++i)
+			if (displaylist.isSelectedIndex(i))
+				sel.add((OsmPrimitive)list.get(i));
+		Main.ds.setSelected(sel);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java	(revision 321)
@@ -0,0 +1,140 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.dialogs;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.EventQueue;
+import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.ComponentAdapter;
+import java.awt.event.ComponentEvent;
+import java.awt.event.KeyEvent;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+
+import javax.swing.AbstractButton;
+import javax.swing.BorderFactory;
+import javax.swing.Box;
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.JosmAction;
+import org.openstreetmap.josm.actions.HelpAction.Helpful;
+import org.openstreetmap.josm.tools.GBC;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * This class is a toggle dialog that can be turned on and off. It is attached
+ * to a ButtonModel.
+ *
+ * @author imi
+ */
+public class ToggleDialog extends JPanel implements Helpful {
+
+	public final class ToggleDialogAction extends JosmAction {
+		public final String prefname;
+		public AbstractButton button;
+
+		private ToggleDialogAction(String name, String iconName, String tooltip, int shortCut, int modifier, String prefname) {
+			super(name, iconName, tooltip, shortCut, modifier, false);
+			this.prefname = prefname;
+		}
+
+		public void actionPerformed(ActionEvent e) {
+			if (e != null && !(e.getSource() instanceof AbstractButton))
+				button.setSelected(!button.isSelected());
+			setVisible(button.isSelected());
+			Main.pref.put(prefname+".visible", button.isSelected());
+		}
+	}
+
+	/**
+	 * The action to toggle this dialog.
+	 */
+	public ToggleDialogAction action;
+	public final String prefName;
+
+	public JPanel parent;
+	private final JPanel titleBar = new JPanel(new GridBagLayout());
+
+	public ToggleDialog(final String name, String iconName, String tooltip, int shortCut, int preferredHeight) {
+		super(new BorderLayout());
+		this.prefName = iconName;
+		setPreferredSize(new Dimension(330,preferredHeight));
+		action = new ToggleDialogAction(name, "dialogs/"+iconName, tooltip, shortCut, KeyEvent.ALT_MASK, iconName);
+		String helpId = "Dialog/"+getClass().getName().substring(getClass().getName().lastIndexOf('.')+1);
+		action.putValue("help", helpId.substring(0, helpId.length()-6));
+		setLayout(new BorderLayout());
+
+		titleBar.add(new JLabel(name), GBC.std());
+		titleBar.add(Box.createHorizontalGlue(),GBC.std().fill(GBC.HORIZONTAL));
+
+		JButton sticky = new JButton(ImageProvider.get("misc", "sticky"));
+		sticky.setBorder(BorderFactory.createEmptyBorder());
+		final ActionListener stickyActionListener = new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				final JFrame f = new JFrame(name);
+				try {f.setAlwaysOnTop(true);} catch (SecurityException e1) {}
+				parent.remove(ToggleDialog.this);
+				f.getContentPane().add(ToggleDialog.this);
+				f.addWindowListener(new WindowAdapter(){
+					@Override public void windowClosing(WindowEvent e) {
+						titleBar.setVisible(true);
+						f.getContentPane().removeAll();
+						parent.add(ToggleDialog.this);
+						f.dispose();
+
+						// doLayout() - workaround
+						setVisible(false);
+						setVisible(true);
+
+						Main.pref.put(action.prefname+".docked", true);
+					}
+				});
+				f.addComponentListener(new ComponentAdapter(){
+					@Override public void componentMoved(ComponentEvent e) {
+						Main.pref.put(action.prefname+".bounds", f.getX()+","+f.getY()+","+f.getWidth()+","+f.getHeight());
+                    }
+				});
+				String bounds = Main.pref.get(action.prefname+".bounds",null);
+				if (bounds != null) {
+					String[] b = bounds.split(",");
+					f.setBounds(Integer.parseInt(b[0]),Integer.parseInt(b[1]),Integer.parseInt(b[2]),Integer.parseInt(b[3]));
+				} else
+					f.pack();
+				Main.pref.put(action.prefname+".docked", false);
+				f.setVisible(true);
+				titleBar.setVisible(false);
+
+				// doLayout() - workaround
+				parent.setVisible(false);
+				parent.setVisible(true);
+			}
+		};
+		sticky.addActionListener(stickyActionListener);
+
+		titleBar.add(sticky);
+		add(titleBar, BorderLayout.NORTH);
+
+		setVisible(false);
+		setBorder(BorderFactory.createEtchedBorder());
+
+		if (!Main.pref.getBoolean(action.prefname+".docked", true)) {
+			EventQueue.invokeLater(new Runnable(){
+				public void run() {
+					stickyActionListener.actionPerformed(null);
+                }
+			});
+		}
+	}
+
+	public String helpTopic() {
+		String help = getClass().getName();
+		help = help.substring(help.lastIndexOf('.')+1, help.length()-6);
+		return "Dialog/"+help;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java	(revision 321)
@@ -0,0 +1,108 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.dialogs;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.BorderLayout;
+import java.awt.event.KeyEvent;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.HashMap;
+
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.ListSelectionModel;
+import javax.swing.table.DefaultTableModel;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.SelectionChangedListener;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.User;
+
+/**
+ * Displays a dialog with all users who have last edited something in the 
+ * selection area, along with the number of objects.
+ * 
+ * @author Frederik Ramm <frederik@remote.org>
+ */
+public class UserListDialog extends ToggleDialog implements SelectionChangedListener {
+
+	/**
+	 * The display list.
+	 */
+	private final DefaultTableModel data = new DefaultTableModel() {
+		@Override public boolean isCellEditable(int row, int column) {
+			return false;
+		}
+		@Override public Class<?> getColumnClass(int columnIndex) {
+			return columnIndex == 0 ? String.class : Integer.class;
+		}
+	};
+
+	private JTable userTable = new JTable(data);
+
+    private static User anonymousUser = User.get("(anonymous users)");
+			
+	public UserListDialog() {
+		super(tr("Authors"), "userlist", tr("Open a list of people working on the selected objects."), KeyEvent.VK_A, 150);
+		
+		data.setColumnIdentifiers(new String[]{tr("Author"),tr("# Objects"),"%"});
+		userTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+		add(new JScrollPane(userTable), BorderLayout.CENTER);
+		selectionChanged(Main.ds.getSelected());
+		
+		DataSet.listeners.add(this);
+	}
+
+	@Override public void setVisible(boolean b) {
+		super.setVisible(b);
+		if (b)
+			selectionChanged(Main.ds.getSelected());
+	}
+
+	/**
+	 * Called when the selection in the dataset changed.
+	 * @param newSelection The new selection array.
+	 */
+	public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
+		if (!isVisible())
+			return;
+		
+		class UserCount {
+			User user;
+			int count;
+			UserCount(User user, int count) { this.user=user; this.count=count; }
+		}
+		
+		if (data == null)
+			return; // selection changed may be received in base class constructor before init
+		
+		data.setRowCount(0);
+		
+		HashMap<User,UserCount> counters = new HashMap<User,UserCount>();
+		int all = 0;
+		for (OsmPrimitive p : newSelection) {
+            User u = p.user;
+            if (u == null) u = anonymousUser;
+            UserCount uc = counters.get(u);
+            if (uc == null) 
+                counters.put(u, uc = new UserCount(u, 0));
+            uc.count++;
+            all++;
+		}
+		UserCount[] ucArr = new UserCount[counters.size()];
+		counters.values().toArray(ucArr);
+		Arrays.sort(ucArr, new Comparator<UserCount>() {
+			public int compare(UserCount a, UserCount b) { 
+				return (a.count<b.count) ? 1 : (a.count>b.count) ? -1 : 0;
+			}
+		});
+		
+		for (UserCount uc : ucArr) {
+			data.addRow(new Object[] { uc.user.name, uc.count, uc.count * 100 / all });
+		}
+	}
+
+}
Index: /trunk/src/org/openstreetmap/josm/gui/download/BookmarkSelection.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/download/BookmarkSelection.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/download/BookmarkSelection.java	(revision 321)
@@ -0,0 +1,102 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.download;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.GridBagLayout;
+import java.awt.GridLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.DefaultListModel;
+import javax.swing.JButton;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.Preferences;
+import org.openstreetmap.josm.gui.BookmarkList;
+import org.openstreetmap.josm.tools.GBC;
+
+/**
+ * Bookmark selector.
+ * 
+ * Provides selection, creation and deletion of bookmarks.
+ * Extracted from old DownloadAction.
+ * 
+ * @author Frederik Ramm <frederik@remote.org>
+ *
+ */
+public class BookmarkSelection implements DownloadSelection {
+
+	private Preferences.Bookmark tempBookmark= null;
+	private BookmarkList bookmarks; 
+	
+	public void addGui(final DownloadDialog gui) {
+		
+		JPanel dlg = new JPanel(new GridBagLayout());
+		gui.tabpane.addTab("Bookmarks", dlg);
+
+		bookmarks = new BookmarkList();
+		bookmarks.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
+			public void valueChanged(ListSelectionEvent e) {
+				Preferences.Bookmark b = (Preferences.Bookmark)bookmarks.getSelectedValue();
+				if (b != null) {
+					gui.minlat = b.latlon[0];
+					gui.minlon = b.latlon[1];
+					gui.maxlat = b.latlon[2];
+					gui.maxlon = b.latlon[3];
+					gui.boundingBoxChanged(BookmarkSelection.this);
+				}
+			}
+		});
+		//wc.addListMarker(bookmarks);
+		dlg.add(new JScrollPane(bookmarks), GBC.eol().fill());
+
+		JPanel buttons = new JPanel(new GridLayout(1,2));
+		JButton add = new JButton(tr("Add"));
+		add.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				
+				if (tempBookmark == null) {
+					JOptionPane.showMessageDialog(Main.parent, tr("Please enter the desired coordinates first."));
+					return;
+				}
+				tempBookmark.name = JOptionPane.showInputDialog(Main.parent,tr("Please enter a name for the location."));
+				if (tempBookmark.name != null && !tempBookmark.name.equals("")) {
+					((DefaultListModel)bookmarks.getModel()).addElement(tempBookmark);
+					bookmarks.save();
+				}
+			}
+		});
+		buttons.add(add);
+		JButton remove = new JButton(tr("Remove"));
+		remove.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				Object sel = bookmarks.getSelectedValue();
+				if (sel == null) {
+					JOptionPane.showMessageDialog(Main.parent,tr("Select a bookmark first."));
+					return;
+				}
+				((DefaultListModel)bookmarks.getModel()).removeElement(sel);
+				bookmarks.save();
+			}
+		});
+		buttons.add(remove);
+		dlg.add(buttons, GBC.eop().fill(GBC.HORIZONTAL));
+	}		
+
+	public void boundingBoxChanged(DownloadDialog gui) {
+		tempBookmark = new Preferences.Bookmark();
+		tempBookmark.latlon[0] = gui.minlat;
+		tempBookmark.latlon[1] = gui.minlon;
+		tempBookmark.latlon[2] = gui.maxlat;
+		tempBookmark.latlon[3] = gui.maxlon;
+		bookmarks.clearSelection();
+	}
+
+
+}
Index: /trunk/src/org/openstreetmap/josm/gui/download/BoundingBoxSelection.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/download/BoundingBoxSelection.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/download/BoundingBoxSelection.java	(revision 321)
@@ -0,0 +1,213 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.download;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.GridBagLayout;
+import java.awt.event.FocusAdapter;
+import java.awt.event.FocusEvent;
+import java.awt.event.FocusListener;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
+import java.util.HashMap;
+
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextArea;
+import javax.swing.JTextField;
+import javax.swing.SwingUtilities;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.Bounds;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.tools.GBC;
+/**
+ * Bounding box selector.
+ * 
+ * Provides max/min lat/lon input fields as well as the "URL from www.openstreetmap.org" text field.
+ * 
+ * @author Frederik Ramm <frederik@remote.org>
+ *
+ */
+public class BoundingBoxSelection implements DownloadSelection {
+
+	private JTextField[] latlon = new JTextField[] {
+			new JTextField(11),
+			new JTextField(11),
+			new JTextField(11),
+			new JTextField(11) };
+	final JTextArea osmUrl = new JTextArea();
+	
+	final JLabel sizeCheck = new JLabel();
+	
+	public void addGui(final DownloadDialog gui) {
+
+		JPanel dlg = new JPanel(new GridBagLayout());
+		osmUrl.setText(tr("You can paste an URL here to download the area."));
+
+		final FocusListener dialogUpdater = new FocusAdapter() {
+			@Override public void focusLost(FocusEvent e) {
+				SwingUtilities.invokeLater(new Runnable() {
+					public void run() {
+						try {
+							double minlat = Double.parseDouble(latlon[0].getText());
+							double minlon = Double.parseDouble(latlon[1].getText());
+							double maxlat = Double.parseDouble(latlon[2].getText());
+							double maxlon = Double.parseDouble(latlon[3].getText());
+							if (minlat != gui.minlat || minlon != gui.minlon || maxlat != gui.maxlat || maxlon != gui.maxlon) {
+								gui.minlat = minlat; gui.minlon = minlon; 
+								gui.maxlat = maxlat; gui.maxlon = maxlon;
+								gui.boundingBoxChanged(BoundingBoxSelection.this);
+							}
+						} catch (NumberFormatException x) {
+							// ignore
+						}
+						updateUrl(gui);
+						updateSizeCheck(gui);
+					}
+				});
+			}
+		};
+		
+		for (JTextField f : latlon) {
+			f.setMinimumSize(new Dimension(100,new JTextField().getMinimumSize().height));
+			f.addFocusListener(dialogUpdater);
+		}
+		
+		final KeyListener osmUrlRefresher = new KeyAdapter() {
+			@Override public void keyTyped(KeyEvent e) {
+				SwingUtilities.invokeLater(new Runnable() {
+					public void run() {
+						Bounds b = osmurl2bounds(osmUrl.getText());
+						if (b != null) {
+							gui.minlon = b.min.lon();
+							gui.minlat = b.min.lat();
+							gui.maxlon = b.max.lon();
+							gui.maxlat = b.max.lat();
+							gui.boundingBoxChanged(BoundingBoxSelection.this);
+							updateBboxFields(gui);
+							updateSizeCheck(gui);
+						}
+					}
+				});
+			}
+		};
+		
+		osmUrl.addKeyListener(osmUrlRefresher);
+		osmUrl.setLineWrap(true);
+		osmUrl.setBorder(latlon[0].getBorder());
+		
+		Font labelFont = sizeCheck.getFont();
+		sizeCheck.setFont(labelFont.deriveFont(Font.PLAIN, labelFont.getSize()));
+		
+		dlg.add(new JLabel(tr("min lat")), GBC.std().insets(10,20,5,0));
+		dlg.add(latlon[0], GBC.std().insets(0,20,0,0));
+		dlg.add(new JLabel(tr("min lon")), GBC.std().insets(10,20,5,0));
+		dlg.add(latlon[1], GBC.eol().insets(0,20,0,0));
+		dlg.add(new JLabel(tr("max lat")), GBC.std().insets(10,0,5,0));
+		dlg.add(latlon[2], GBC.std());
+		dlg.add(new JLabel(tr("max lon")), GBC.std().insets(10,0,5,0));
+		dlg.add(latlon[3], GBC.eol());
+		
+		dlg.add(new JLabel(tr("URL from www.openstreetmap.org")), GBC.eol().insets(10,20,5,0));
+		dlg.add(osmUrl, GBC.eop().insets(10,0,5,0).fill());
+		dlg.add(sizeCheck, GBC.eop().insets(10,0,5,20));
+
+		gui.tabpane.addTab("Bounding Box", dlg);
+	}
+	
+	/**
+	 * Called when bounding box is changed by one of the other download dialog tabs.
+	 */
+	public void boundingBoxChanged(DownloadDialog gui) {
+		updateBboxFields(gui);
+		updateUrl(gui);
+		updateSizeCheck(gui);
+	}
+	
+	private void updateBboxFields(DownloadDialog gui) {
+		latlon[0].setText(Double.toString(gui.minlat));
+		latlon[1].setText(Double.toString(gui.minlon));
+		latlon[2].setText(Double.toString(gui.maxlat));
+		latlon[3].setText(Double.toString(gui.maxlon));
+		for (JTextField f : latlon) 
+			f.setCaretPosition(0);
+	}
+	
+	private void updateUrl(DownloadDialog gui) {	
+		double lat = (gui.minlat + gui.maxlat)/2;
+		double lon = (gui.minlon + gui.maxlon)/2;
+		// convert to mercator (for calculation of zoom only)
+		double latMin = Math.log(Math.tan(Math.PI/4.0+gui.minlat/180.0*Math.PI/2.0))*180.0/Math.PI;
+		double latMax = Math.log(Math.tan(Math.PI/4.0+gui.maxlat/180.0*Math.PI/2.0))*180.0/Math.PI;
+		double size = Math.max(Math.abs(latMax-latMin), Math.abs(gui.maxlon-gui.minlon));
+		int zoom = 0;
+		while (zoom <= 20) {
+			if (size >= 180)
+				break;
+			size *= 2;
+			zoom++;
+		}
+		osmUrl.setText("http://www.openstreetmap.org/index.html?mlat="+lat+"&mlon="+lon+"&zoom="+zoom);
+	}
+	
+	private void updateSizeCheck(DownloadDialog gui) {
+		double squareDegrees = (gui.maxlon-gui.minlon)*(gui.maxlat-gui.minlat);
+		double maxBboxSize = 0.25;
+		try {
+			Double.parseDouble(Main.pref.get("osm-server.max-request-area", "0.25"));
+		} catch (NumberFormatException nfe) {
+			maxBboxSize = 0.25;
+		}
+		if (squareDegrees > maxBboxSize) {
+			sizeCheck.setText(tr("Download area too large; will probably be rejected by server"));
+			sizeCheck.setForeground(Color.red);
+		} else {
+			sizeCheck.setText(tr("Download area ok, size probably acceptable to server"));
+			sizeCheck.setForeground(Color.darkGray);
+		}
+	}
+	
+	public static Bounds osmurl2bounds(String url) {
+		int i = url.indexOf('?');
+		if (i == -1)
+			return null;
+		String[] args = url.substring(i+1).split("&");
+		HashMap<String, String> map = new HashMap<String, String>();
+		for (String arg : args) {
+			int eq = arg.indexOf('=');
+			if (eq != -1) {
+				map.put(arg.substring(0, eq), arg.substring(eq + 1));
+			}
+		}
+
+		Bounds b = null;
+		try {
+			if (map.containsKey("bbox")) {
+				String bbox[] = map.get("bbox").split(",");
+				b = new Bounds(
+					new LatLon(Double.parseDouble(bbox[1]), Double.parseDouble(bbox[0])),
+					new LatLon(Double.parseDouble(bbox[3]), Double.parseDouble(bbox[2])));
+			
+			} else {
+				double size = 180.0 / Math.pow(2, Integer.parseInt(map.get("zoom")));
+				b = new Bounds(
+	            	new LatLon(parseDouble(map, "lat") - size/2, parseDouble(map, "lon") - size),
+	            	new LatLon(parseDouble(map, "lat") + size/2, parseDouble(map, "lon") + size));
+			}
+		} catch (NumberFormatException x) {
+		} catch (NullPointerException x) {
+		}
+		return b;
+	}
+
+	private static double parseDouble(HashMap<String, String> map, String key) {
+		if (map.containsKey(key))
+			return Double.parseDouble(map.get(key));
+		return Double.parseDouble(map.get("m"+key));
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java	(revision 321)
@@ -0,0 +1,140 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.download;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.GridBagLayout;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.swing.JCheckBox;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTabbedPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.DownloadAction;
+import org.openstreetmap.josm.actions.downloadtasks.DownloadGpsTask;
+import org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTask;
+import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.plugins.PluginProxy;
+import org.openstreetmap.josm.tools.GBC;
+
+/**
+ * Main download dialog.
+ * 
+ * Can be extended by plugins in two ways:
+ * (1) by adding download tasks that are then called with the selected bounding box
+ * (2) by adding "DownloadSelection" objects that implement different ways of selecting a bounding box
+ * 
+ * @author Frederik Ramm <frederik@remote.org>
+ *
+ */
+public class DownloadDialog extends JPanel {
+	
+
+	public interface DownloadTask {
+		/**
+		 * Execute the download.
+		 */
+		void download(DownloadAction action, double minlat, double minlon, double maxlat, double maxlon);
+		/**
+		 * @return The checkbox presented to the user
+		 */
+		JCheckBox getCheckBox();
+		/**
+		 * @return The name of the preferences suffix to use for storing the
+		 * selection state.
+		 */
+		String getPreferencesSuffix();
+	}
+
+	/**
+	 * The list of download tasks. First entry should be the osm data entry
+	 * and the second the gps entry. After that, plugins can register additional
+	 * download possibilities.
+	 */
+	public final List<DownloadTask> downloadTasks = new ArrayList<DownloadTask>(5);
+
+	public final List<DownloadSelection> downloadSelections = new ArrayList<DownloadSelection>();
+	public final JTabbedPane tabpane = new JTabbedPane();
+	public final JCheckBox newLayer;
+	
+	public double minlon;
+	public double minlat;
+	public double maxlon;
+	public double maxlat;
+	
+	
+	public DownloadDialog() {
+		setLayout(new GridBagLayout());
+		
+		downloadTasks.add(new DownloadOsmTask());
+		downloadTasks.add(new DownloadGpsTask());
+		
+		// adding the download tasks
+		add(new JLabel(tr("Data Sources and Types")), GBC.eol().insets(0,5,0,0));
+		for (DownloadTask task : downloadTasks) {
+			add(task.getCheckBox(), GBC.eol().insets(20,0,0,0));
+			task.getCheckBox().setSelected(Main.pref.getBoolean("download."+task.getPreferencesSuffix()));
+		}
+		
+		// predefined download selections
+		downloadSelections.add(new BoundingBoxSelection());
+		downloadSelections.add(new BookmarkSelection());	
+		downloadSelections.add(new WorldChooser());
+		
+		// add selections from plugins
+		for (PluginProxy p : Main.plugins) {
+			p.addDownloadSelection(downloadSelections);
+		}
+		
+		// now everybody may add their tab to the tabbed pane
+		// (not done right away to allow plugins to remove one of
+		// the default selectors!)
+		for (DownloadSelection s : downloadSelections) {
+			s.addGui(this);
+		}
+		
+		if (Main.map != null) {
+			MapView mv = Main.map.mapView;
+			minlon = mv.getLatLon(0, mv.getHeight()).lon();
+			minlat = mv.getLatLon(0, mv.getHeight()).lat();
+			maxlon = mv.getLatLon(mv.getWidth(), 0).lon();
+			maxlat = mv.getLatLon(mv.getWidth(), 0).lat();
+			boundingBoxChanged(null);
+		}
+
+		newLayer = new JCheckBox(tr("Download as new layer"), Main.pref.getBoolean("download.newlayer", false));
+		add(newLayer, GBC.eol().insets(0,5,0,0));
+
+		add(new JLabel(tr("Download Area")), GBC.eol().insets(0,5,0,0));
+		add(tabpane, GBC.eol().fill());
+		
+		try {
+			tabpane.setSelectedIndex(Integer.parseInt(Main.pref.get("download.tab", "0")));
+		} catch (Exception ex) {
+			Main.pref.put("download.tab", "0");
+		}
+	}
+	
+	/**
+	 * Distributes a "bounding box changed" from ohne DownloadSelection 
+	 * object to the others, so they may update or clear their input 
+	 * fields.
+	 * 
+	 * @param eventSource - the DownloadSelection object that fired this notification.
+	 */
+	public void boundingBoxChanged(DownloadSelection eventSource) {
+		for (DownloadSelection s : downloadSelections) {
+			if (s != eventSource) s.boundingBoxChanged(this);
+		}	
+	}
+
+	/*
+	 * Returns currently selected tab.
+	 */
+	public int getSelectedTab() {
+		return tabpane.getSelectedIndex();
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/download/DownloadSelection.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/download/DownloadSelection.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/download/DownloadSelection.java	(revision 321)
@@ -0,0 +1,17 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.download;
+
+
+public interface DownloadSelection {
+	/**
+	 * Add the GUI elements to the dialog. 
+	 */
+	void addGui(DownloadDialog gui);
+
+	/** 
+	 * Update or clear display when a selection is made through another
+	 * DownloadSelection object
+	 */
+	void boundingBoxChanged(DownloadDialog gui);
+	
+}
Index: /trunk/src/org/openstreetmap/josm/gui/download/WorldChooser.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/download/WorldChooser.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/download/WorldChooser.java	(revision 321)
@@ -0,0 +1,178 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.download;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.awt.Point;
+import java.awt.Rectangle;
+import java.beans.PropertyChangeListener;
+import java.net.URL;
+
+import javax.swing.ImageIcon;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.projection.Projection;
+import org.openstreetmap.josm.gui.MapMover;
+import org.openstreetmap.josm.gui.MapScaler;
+import org.openstreetmap.josm.gui.NavigatableComponent;
+import org.openstreetmap.josm.gui.SelectionManager;
+import org.openstreetmap.josm.gui.SelectionManager.SelectionEnded;
+
+
+/**
+ * A component that let the user select a lat/lon bounding box from zooming
+ * into the world as a picture and selecting a region.
+ *
+ * The component has to be of the aspect ration 2:1 to look good.
+ *
+ * @author imi
+ */
+public class WorldChooser extends NavigatableComponent implements DownloadSelection {
+
+	/**
+	 * The world as picture.
+	 */
+	private ImageIcon world;
+
+	/**
+	 * Maximum scale level
+	 */
+	private double scaleMax;
+
+	/**
+	 * Mark this rectangle (lat/lon values) when painting.
+	 */
+	private EastNorth markerMin, markerMax;
+
+	private Projection projection;
+
+	/**
+	 * Create the chooser component.
+	 */
+	public WorldChooser() {
+		URL path = Main.class.getResource("/images/world.jpg");
+		world = new ImageIcon(path);
+		center = new EastNorth(world.getIconWidth()/2, world.getIconHeight()/2);
+		setPreferredSize(new Dimension(400, 200));
+
+		projection = new Projection() {
+			public EastNorth latlon2eastNorth(LatLon p) {
+				return new EastNorth(
+						(p.lon()+180) / 360 * world.getIconWidth(),
+						(p.lat()+90) / 180 * world.getIconHeight());
+			}
+			public LatLon eastNorth2latlon(EastNorth p) {
+				return new LatLon(
+						p.north()*180/world.getIconHeight() - 90,
+						p.east()*360/world.getIconWidth() - 180);
+			}
+			@Override public String toString() {
+				return "WorldChooser";
+			}
+            public String getCacheDirectoryName() {
+                throw new UnsupportedOperationException();
+            }
+			public double scaleFactor() {
+	            return 1.0 / world.getIconWidth();
+            }
+
+		};
+
+		MapScaler scaler = new MapScaler(this, projection);
+		add(scaler);
+		scaler.setLocation(10,10);
+
+		setMinimumSize(new Dimension(350, 350/2));
+	}
+
+	public void addGui(final DownloadDialog gui) {
+		JPanel temp = new JPanel();
+		temp.setLayout(new BorderLayout());
+		temp.add(this, BorderLayout.CENTER);
+		temp.add(new JLabel(tr("You can use the mouse or Ctrl+Arrow keys/./ to zoom and pan.")), BorderLayout.SOUTH);
+		gui.tabpane.add(temp, "Map");
+		new MapMover(this, temp);		
+		SelectionEnded selListener = new SelectionEnded(){
+			public void selectionEnded(Rectangle r, boolean alt, boolean shift, boolean ctrl) {
+				markerMin = getEastNorth(r.x, r.y+r.height);
+				markerMax = getEastNorth(r.x+r.width, r.y);
+				LatLon min = getProjection().eastNorth2latlon(markerMin);
+				LatLon max = getProjection().eastNorth2latlon(markerMax);
+				gui.minlat = min.lat();
+				gui.minlon = min.lon();
+				gui.maxlat = max.lat();
+				gui.maxlon = max.lon();
+				gui.boundingBoxChanged(WorldChooser.this);
+				repaint();
+			}
+			public void addPropertyChangeListener(PropertyChangeListener listener) {}
+			public void removePropertyChangeListener(PropertyChangeListener listener) {}
+		};
+		SelectionManager sm = new SelectionManager(selListener, false, this);
+		sm.register(this);
+    }
+
+	public void boundingBoxChanged(DownloadDialog gui) {
+		markerMin = getProjection().latlon2eastNorth(new LatLon(gui.minlat, gui.minlon));
+		markerMax = getProjection().latlon2eastNorth(new LatLon(gui.maxlat, gui.maxlon));
+		repaint();
+	}
+
+	/**
+	 * Set the scale as well as the preferred size.
+	 */
+	@Override public void setPreferredSize(Dimension preferredSize) {
+		super.setPreferredSize(preferredSize);
+		scale = world.getIconWidth()/preferredSize.getWidth();
+		scaleMax = scale;
+	}
+
+	/**
+	 * Draw the current selected region.
+	 */
+	@Override public void paint(Graphics g) {
+		EastNorth tl = getEastNorth(0,0);
+		EastNorth br = getEastNorth(getWidth(),getHeight());
+		g.drawImage(world.getImage(),0,0,getWidth(),getHeight(),(int)tl.east(),(int)tl.north(),(int)br.east(),(int)br.north(), null);
+
+		// draw marker rect
+		if (markerMin != null && markerMax != null) {
+			Point p1 = getPoint(markerMin);
+			Point p2 = getPoint(markerMax);
+			double x = Math.min(p1.x, p2.x);
+			double y = Math.min(p1.y, p2.y);
+			double w = Math.max(p1.x, p2.x) - x;
+			double h = Math.max(p1.y, p2.y) - y;
+			if (w < 1)
+				w = 1;
+			if (h < 1)
+				h = 1;
+			g.setColor(Color.YELLOW);
+			g.drawRect((int)x, (int)y, (int)w, (int)h);
+		}
+		super.paint(g);
+	}
+
+	@Override public void zoomTo(EastNorth newCenter, double scale) {
+		if (getWidth() != 0 && scale > scaleMax) {
+			scale = scaleMax;
+			newCenter = center;
+		}
+		super.zoomTo(newCenter, scale);
+	}
+
+	/**
+	 * Always use our image projection mode.
+	 */
+	@Override protected Projection getProjection() {
+		return projection;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java	(revision 321)
@@ -0,0 +1,513 @@
+//License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.layer;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Cursor;
+import java.awt.Graphics;
+import java.awt.GridBagLayout;
+import java.awt.Image;
+import java.awt.Insets;
+import java.awt.Point;
+import java.awt.Rectangle;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.event.KeyEvent;
+import java.io.File;
+import java.io.IOException;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Date;
+import java.util.LinkedList;
+
+import javax.swing.BorderFactory;
+import javax.swing.DefaultListCellRenderer;
+import javax.swing.Icon;
+import javax.swing.ImageIcon;
+import javax.swing.JDialog;
+import javax.swing.JFileChooser;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JSeparator;
+import javax.swing.JTextField;
+import javax.swing.JToggleButton;
+import javax.swing.JButton;
+import javax.swing.JViewport;
+import javax.swing.border.BevelBorder;
+import javax.swing.border.Border;
+import javax.swing.filechooser.FileFilter;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.RenameLayerAction;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
+import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.PleaseWaitRunnable;
+import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
+import org.openstreetmap.josm.gui.dialogs.LayerListPopup;
+import org.openstreetmap.josm.gui.layer.RawGpsLayer.GpsPoint;
+import org.openstreetmap.josm.tools.DateParser;
+import org.openstreetmap.josm.tools.ExifReader;
+import org.openstreetmap.josm.tools.GBC;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * A layer which imports several photos from disk and read EXIF time information from them.
+ *
+ * @author Imi
+ */
+public class GeoImageLayer extends Layer {
+
+	private static final class ImageEntry implements Comparable<ImageEntry> {
+		File image;
+		Date time;
+		LatLon coor;
+		EastNorth pos;
+		Icon icon;
+		public int compareTo(ImageEntry image) {
+			return time.compareTo(image.time);
+		}
+	}
+
+	private static final class Loader extends PleaseWaitRunnable {
+		boolean cancelled = false;
+		private GeoImageLayer layer;
+		private final Collection<File> files;
+		private final RawGpsLayer gpsLayer;
+		public Loader(Collection<File> files, RawGpsLayer gpsLayer) {
+			super(tr("Images for {0}", gpsLayer.name));
+			this.files = files;
+			this.gpsLayer = gpsLayer;
+		}
+		@Override protected void realRun() throws IOException {
+			Main.pleaseWaitDlg.currentAction.setText(tr("Read GPS..."));
+			LinkedList<TimedPoint> gps = new LinkedList<TimedPoint>();
+
+			// Extract dates and locations from GPS input
+			for (Collection<GpsPoint> c : gpsLayer.data) {
+				for (GpsPoint p : c) {
+					if (p.time == null)
+						throw new IOException(tr("No time for point {0} x {1}",p.latlon.lat(),p.latlon.lon()));
+					Date d = null;
+					try {
+						d = DateParser.parse(p.time);
+					} catch (ParseException e) {
+						throw new IOException(tr("Cannot read time \"{0}\" from point {1} x {2}",p.time,p.latlon.lat(),p.latlon.lon()));
+					}
+					gps.add(new TimedPoint(d, p.eastNorth));
+				}
+			}
+
+			if (gps.isEmpty()) {
+				errorMessage = tr("No images with readable timestamps found.");
+				return;
+			}
+
+			// read the image files
+			ArrayList<ImageEntry> data = new ArrayList<ImageEntry>(files.size());
+			int i = 0;
+			Main.pleaseWaitDlg.progress.setMaximum(files.size());
+			for (File f : files) {
+				if (cancelled)
+					break;
+				Main.pleaseWaitDlg.currentAction.setText(tr("Reading {0}...",f.getName()));
+				Main.pleaseWaitDlg.progress.setValue(i++);
+
+				ImageEntry e = new ImageEntry();
+				try {
+					e.time = ExifReader.readTime(f);
+				} catch (ParseException e1) {
+					continue;
+				}
+				if (e.time == null)
+					continue;
+				e.image = f;
+				e.icon = loadScaledImage(f, 16);
+
+				data.add(e);
+			}
+			layer = new GeoImageLayer(data, gps);
+			layer.calculatePosition();
+		}
+		@Override protected void finish() {
+			if (layer != null)
+				Main.main.addLayer(layer);
+		}
+		@Override protected void cancel() {cancelled = true;}
+	}
+
+	public ArrayList<ImageEntry> data;
+	private LinkedList<TimedPoint> gps = new LinkedList<TimedPoint>();
+
+	/**
+	 * The delta added to all timestamps in files from the camera
+	 * to match to the timestamp from the gps receivers tracklog.
+	 */
+	private long delta = Long.parseLong(Main.pref.get("tagimages.delta", "0"));
+	private long gpstimezone = Long.parseLong(Main.pref.get("tagimages.gpstimezone", "0"))*60*60*1000;
+	private boolean mousePressed = false;
+	private static final SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
+	private MouseAdapter mouseAdapter;
+	private int currentImage;
+
+	public static final class GpsTimeIncorrect extends Exception {
+		public GpsTimeIncorrect(String message, Throwable cause) {
+			super(message, cause);
+		}
+		public GpsTimeIncorrect(String message) {
+			super(message);
+		}
+	}
+
+	private static final class TimedPoint implements Comparable<TimedPoint> {
+		Date time;
+		EastNorth pos;
+		public TimedPoint(Date time, EastNorth pos) {
+			this.time = time;
+			this.pos = pos;
+		}
+		public int compareTo(TimedPoint point) {
+			return time.compareTo(point.time);
+		}
+	}
+
+	public static void create(Collection<File> files, RawGpsLayer gpsLayer) {
+		Loader loader = new Loader(files, gpsLayer);
+		Main.worker.execute(loader);
+	}
+
+	private GeoImageLayer(final ArrayList<ImageEntry> data, LinkedList<TimedPoint> gps) {
+		super(tr("Geotagged Images"));
+		Collections.sort(data);
+		Collections.sort(gps);
+		this.data = data;
+		this.gps = gps;
+		mouseAdapter = new MouseAdapter(){
+			@Override public void mousePressed(MouseEvent e) {
+				if (e.getButton() != MouseEvent.BUTTON1)
+					return;
+				mousePressed  = true;
+				if (visible)
+					Main.map.mapView.repaint();
+			}
+			@Override public void mouseReleased(MouseEvent ev) {
+				if (ev.getButton() != MouseEvent.BUTTON1)
+					return;
+				mousePressed = false;
+				if (!visible)
+					return;
+				for (int i = data.size(); i > 0; --i) {
+					ImageEntry e = data.get(i-1);
+					if (e.pos == null)
+						continue;
+					Point p = Main.map.mapView.getPoint(e.pos);
+					Rectangle r = new Rectangle(p.x-e.icon.getIconWidth()/2, p.y-e.icon.getIconHeight()/2, e.icon.getIconWidth(), e.icon.getIconHeight());
+					if (r.contains(ev.getPoint())) {
+						showImage(i-1);
+						break;
+					}
+				}
+				Main.map.mapView.repaint();
+			}
+		};
+		Main.map.mapView.addMouseListener(mouseAdapter);
+		Layer.listeners.add(new LayerChangeListener(){
+			public void activeLayerChange(Layer oldLayer, Layer newLayer) {}
+			public void layerAdded(Layer newLayer) {}
+			public void layerRemoved(Layer oldLayer) {
+				Main.map.mapView.removeMouseListener(mouseAdapter);
+			}
+		});
+	}
+
+	private void showImage(int i) {
+		currentImage = i;
+		final JPanel p = new JPanel(new BorderLayout());
+		final ImageEntry e = data.get(currentImage);
+		final JScrollPane scroll = new JScrollPane(new JLabel(loadScaledImage(e.image, 580)));
+		final JViewport vp = scroll.getViewport();
+		p.add(scroll, BorderLayout.CENTER);
+
+		final JToggleButton scale = new JToggleButton(ImageProvider.get("dialogs", "zoom-best-fit"));
+		final JButton next  = new JButton(ImageProvider.get("dialogs", "next"));
+		final JButton prev = new JButton(ImageProvider.get("dialogs", "previous"));
+		final JToggleButton cent = new JToggleButton(ImageProvider.get("dialogs", "centreview"));
+
+		JPanel p2 = new JPanel();
+		p2.add(prev);
+		p2.add(scale);
+		p2.add(cent);
+		p2.add(next);
+		prev.setEnabled(currentImage>0?true:false);
+		next.setEnabled(currentImage<data.size()-1?true:false);
+		p.add(p2, BorderLayout.SOUTH);
+		final JOptionPane pane = new JOptionPane(p, JOptionPane.PLAIN_MESSAGE);
+		final JDialog dlg = pane.createDialog(Main.parent, e.image+" ("+e.coor.toDisplayString()+")");
+		scale.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent ev) {
+				p.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+				if (scale.getModel().isSelected())
+					((JLabel)vp.getView()).setIcon(loadScaledImage(e.image, Math.max(vp.getWidth(), vp.getHeight())));
+				else
+					((JLabel)vp.getView()).setIcon(new ImageIcon(e.image.getPath()));
+				p.setCursor(Cursor.getDefaultCursor());
+			}
+		});
+		scale.setSelected(true);
+		cent.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent ev) {
+				final ImageEntry e = data.get(currentImage);
+				if (cent.getModel().isSelected())
+					Main.map.mapView.zoomTo(e.pos, Main.map.mapView.getScale());
+			}
+		});
+
+		ActionListener nextprevAction = new ActionListener(){
+			public void actionPerformed(ActionEvent ev) {			    
+				p.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+				if (ev.getActionCommand().equals("Next")) {
+					currentImage++; 
+					if(currentImage>=data.size()-1) next.setEnabled(false);
+					prev.setEnabled(true);
+				} else {
+					currentImage--;
+					if(currentImage<=0) prev.setEnabled(false);
+					next.setEnabled(true);
+				}
+
+				final ImageEntry e = data.get(currentImage);
+				if (scale.getModel().isSelected())
+					((JLabel)vp.getView()).setIcon(loadScaledImage(e.image, Math.max(vp.getWidth(), vp.getHeight())));
+				else
+					((JLabel)vp.getView()).setIcon(new ImageIcon(e.image.getPath()));
+				dlg.setTitle(e.image+" ("+e.coor.toDisplayString()+")");
+				if (cent.getModel().isSelected())
+					Main.map.mapView.zoomTo(e.pos, Main.map.mapView.getScale());
+				p.setCursor(Cursor.getDefaultCursor());
+			}
+		};
+		next.setActionCommand("Next");
+		prev.setActionCommand("Previous");
+		next.setMnemonic(KeyEvent.VK_RIGHT);
+		prev.setMnemonic(KeyEvent.VK_LEFT);
+		scale.setMnemonic(KeyEvent.VK_F);
+		cent.setMnemonic(KeyEvent.VK_C);
+		next.setToolTipText("Show next image");
+		prev.setToolTipText("Show previous image");
+		cent.setToolTipText("Centre image location in main display");
+		scale.setToolTipText("Scale image to fit");
+
+		prev.addActionListener(nextprevAction);
+		next.addActionListener(nextprevAction);
+		cent.setSelected(false);
+
+		dlg.setModal(false);
+		dlg.setVisible(true);
+	}
+
+	@Override public Icon getIcon() {
+		return ImageProvider.get("layer", "tagimages_small");
+	}
+
+	@Override public Object getInfoComponent() {
+		JPanel p = new JPanel(new GridBagLayout());
+		p.add(new JLabel(getToolTipText()), GBC.eop());
+
+		p.add(new JLabel(tr("GPS start: {0}",dateFormat.format(gps.getFirst().time))), GBC.eol());
+		p.add(new JLabel(tr("GPS end: {0}",dateFormat.format(gps.getLast().time))), GBC.eop());
+
+		p.add(new JLabel(tr("current delta: {0}s",(delta/1000.0))), GBC.eol());
+		p.add(new JLabel(tr("timezone difference: ")+(gpstimezone>0?"+":"")+(gpstimezone/1000/60/60)), GBC.eop());
+
+		JList img = new JList(data.toArray());
+		img.setCellRenderer(new DefaultListCellRenderer(){
+			@Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
+				super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
+				ImageEntry e = (ImageEntry)value;
+				setIcon(e.icon);
+				setText(e.image.getName()+" ("+dateFormat.format(new Date(e.time.getTime()+(delta+gpstimezone)))+")");
+				if (e.pos == null)
+					setForeground(Color.red);
+				return this;
+			}
+		});
+		img.setVisibleRowCount(5);
+		p.add(new JScrollPane(img), GBC.eop().fill(GBC.BOTH));
+		return p;
+	}
+
+	@Override public String getToolTipText() {
+		int i = 0;
+		for (ImageEntry e : data)
+			if (e.pos != null)
+				i++;
+		return data.size()+" "+trn("image","images",data.size())+". "+tr("{0} within the track.",i);
+	}
+
+	@Override public boolean isMergable(Layer other) {
+		return other instanceof GeoImageLayer;
+	}
+
+	@Override public void mergeFrom(Layer from) {
+		GeoImageLayer l = (GeoImageLayer)from;
+		data.addAll(l.data);
+	}
+
+	@Override public void paint(Graphics g, MapView mv) {
+		boolean clickedFound = false;
+		for (ImageEntry e : data) {
+			if (e.pos != null) {
+				Point p = mv.getPoint(e.pos);
+				Rectangle r = new Rectangle(p.x-e.icon.getIconWidth()/2, p.y-e.icon.getIconHeight()/2, e.icon.getIconWidth(), e.icon.getIconHeight());
+				e.icon.paintIcon(mv, g, r.x, r.y);
+				Border b = null;
+				Point mousePosition = mv.getMousePosition();
+				if (mousePosition == null)
+					continue; // mouse outside the whole window
+				if (!clickedFound && mousePressed && r.contains(mousePosition)) {
+					b = BorderFactory.createBevelBorder(BevelBorder.LOWERED);
+					clickedFound = true;
+				} else
+					b = BorderFactory.createBevelBorder(BevelBorder.RAISED);
+				Insets inset = b.getBorderInsets(mv);
+				r.grow((inset.top+inset.bottom)/2, (inset.left+inset.right)/2);
+				b.paintBorder(mv, g, r.x, r.y, r.width, r.height);
+			}
+		}
+	}
+
+	@Override public void visitBoundingBox(BoundingXYVisitor v) {
+		for (ImageEntry e : data)
+			v.visit(e.pos);
+	}
+
+	@Override public Component[] getMenuEntries() {
+		JMenuItem sync = new JMenuItem(tr("Sync clock"), ImageProvider.get("clock"));
+		sync.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				JFileChooser fc = new JFileChooser(Main.pref.get("tagimages.lastdirectory"));
+				fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
+				fc.setAcceptAllFileFilterUsed(false);
+				fc.setFileFilter(new FileFilter(){
+					@Override public boolean accept(File f) {
+						return f.isDirectory() || f.getName().toLowerCase().endsWith(".jpg");
+					}
+					@Override public String getDescription() {
+						return tr("JPEG images (*.jpg)");
+					}
+				});
+				fc.showOpenDialog(Main.parent);
+				File sel = fc.getSelectedFile();
+				if (sel == null)
+					return;
+				Main.pref.put("tagimages.lastdirectory", sel.getPath());
+				sync(sel);
+				Main.map.repaint();
+			}
+		});
+		return new Component[]{
+				new JMenuItem(new LayerListDialog.ShowHideLayerAction(this)),
+				new JMenuItem(new LayerListDialog.DeleteLayerAction(this)),
+				new JSeparator(),
+				sync,
+				new JSeparator(),
+				new JMenuItem(new RenameLayerAction(null, this)),
+				new JSeparator(),
+				new JMenuItem(new LayerListPopup.InfoAction(this))};
+	}
+
+	private void calculatePosition() {
+		for (ImageEntry e : data) {
+			TimedPoint lastTP = null;
+			for (TimedPoint tp : gps) {
+				Date time = new Date(tp.time.getTime() - (delta+gpstimezone));
+				if (time.after(e.time) && lastTP != null) {
+					double x = (lastTP.pos.east()+tp.pos.east())/2;
+					double y = (lastTP.pos.north()+tp.pos.north())/2;
+					e.pos = new EastNorth(x,y);
+					break;
+				}
+				lastTP = tp;
+			}
+			if (e.pos != null)
+				e.coor = Main.proj.eastNorth2latlon(e.pos);
+		}
+	}
+
+	private void sync(File f) {
+		Date exifDate;
+		try {
+			exifDate = ExifReader.readTime(f);
+		} catch (ParseException e) {
+			JOptionPane.showMessageDialog(Main.parent, tr("The date in file \"{0}\" could not be parsed.", f.getName()));
+			return;
+		}
+		if (exifDate == null) {
+			JOptionPane.showMessageDialog(Main.parent, tr("There is no EXIF time within the file \"{0}\".", f.getName()));
+			return;
+		}
+		JPanel p = new JPanel(new GridBagLayout());
+		p.add(new JLabel(tr("Image")), GBC.eol());
+		p.add(new JLabel(loadScaledImage(f, 300)), GBC.eop());
+		p.add(new JLabel(tr("Enter shown date (mm/dd/yyyy HH:MM:SS)")), GBC.eol());
+		JTextField gpsText = new JTextField(dateFormat.format(new Date(exifDate.getTime()+delta)));
+		p.add(gpsText, GBC.eol().fill(GBC.HORIZONTAL));
+		p.add(new JLabel(tr("GPS unit timezome (difference to photo)")), GBC.eol());
+		String t = Main.pref.get("tagimages.gpstimezone", "0");
+		if (t.charAt(0) != '-')
+			t = "+"+t;
+		JTextField gpsTimezone = new JTextField(t);
+		p.add(gpsTimezone, GBC.eol().fill(GBC.HORIZONTAL));
+
+		while (true) {
+			int answer = JOptionPane.showConfirmDialog(Main.parent, p, tr("Syncronize Time with GPS Unit"), JOptionPane.OK_CANCEL_OPTION);
+			if (answer != JOptionPane.OK_OPTION || gpsText.getText().equals(""))
+				return;
+			try {
+				delta = DateParser.parse(gpsText.getText()).getTime() - exifDate.getTime();
+				String time = gpsTimezone.getText();
+				if (!time.equals("") && time.charAt(0) == '+')
+					time = time.substring(1);
+				if (time.equals(""))
+					time = "0";
+				gpstimezone = Long.valueOf(time)*60*60*1000;
+				Main.pref.put("tagimages.delta", ""+delta);
+				Main.pref.put("tagimages.gpstimezone", time);
+				calculatePosition();
+				return;
+			} catch (NumberFormatException x) {
+				JOptionPane.showMessageDialog(Main.parent, tr("Time entered could not be parsed."));
+			} catch (ParseException x) {
+				JOptionPane.showMessageDialog(Main.parent, tr("Time entered could not be parsed."));
+			}
+		}
+	}
+
+	private static Icon loadScaledImage(File f, int maxSize) {
+		Image img = new ImageIcon(f.getPath()).getImage();
+		int w = img.getWidth(null);
+		int h = img.getHeight(null);
+		if (w>h) {
+			h = Math.round(maxSize*((float)h/w));
+			w = maxSize;
+		} else {
+			w = Math.round(maxSize*((float)w/h));
+			h = maxSize;
+		}
+		return new ImageIcon(img.getScaledInstance(w, h, Image.SCALE_SMOOTH));
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/layer/Layer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/Layer.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/Layer.java	(revision 321)
@@ -0,0 +1,120 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.layer;
+
+import java.awt.Component;
+import java.awt.Graphics;
+import java.io.File;
+import java.util.Collection;
+import java.util.concurrent.CopyOnWriteArrayList;
+
+import javax.swing.Icon;
+
+import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
+import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.tools.Destroyable;
+
+/**
+ * A layer encapsulates the gui componente of one dataset and its representation.
+ * 
+ * Some layers may display data directly importet from OSM server. Other only 
+ * display background images. Some can be edited, some not. Some are static and 
+ * other changes dynamically (auto-updated).
+ *
+ * Layers can be visible or not. Most actions the user can do applies only on
+ * selected layers. The available actions depend on the selected layers too.
+ * 
+ * All layers are managed by the MapView. They are displayed in a list to the 
+ * right of the screen.
+ * 
+ * @author imi
+ */
+abstract public class Layer implements Destroyable {
+
+	/**
+	 * Interface to notify listeners of the change of the active layer.
+	 * @author imi
+	 */
+	public interface LayerChangeListener {
+		void activeLayerChange(Layer oldLayer, Layer newLayer);
+		void layerAdded(Layer newLayer);
+		void layerRemoved(Layer oldLayer);
+	}
+
+	/**
+	 * The listener of the active layer changes. You may register/deregister yourself
+	 * while an LayerChangeListener - action is executed.
+	 */
+	public static final Collection<LayerChangeListener> listeners = new CopyOnWriteArrayList<LayerChangeListener>();
+
+	/**
+	 * The visibility state of the layer.
+	 */
+	public boolean visible = true;
+	/**
+	 * The name of this layer.
+	 */
+	public String name;
+	/**
+	 * If a file is associated with this layer, this variable should be set to it.
+	 */
+	public File associatedFile;
+
+	/**
+	 * Create the layer and fill in the necessary components.
+	 */
+	public Layer(String name) {
+		this.name = name;
+	}
+
+	/**
+	 * Paint the dataset using the engine set.
+	 * @param mv The object that can translate GeoPoints to screen coordinates.
+	 */
+	abstract public void paint(Graphics g, MapView mv);
+	/**
+	 * Return a representative small image for this layer. The image must not 
+	 * be larger than 64 pixel in any dimension.
+	 */
+	abstract public Icon getIcon();
+
+	/**
+	 * @return A small tooltip hint about some statistics for this layer.
+	 */
+	abstract public String getToolTipText();
+
+	/**
+	 * Merges the given layer into this layer. Throws if the layer types are
+	 * incompatible.
+	 * @param from The layer that get merged into this one. After the merge,
+	 * 		the other layer is not usable anymore and passing to one others
+	 * 		mergeFrom should be one of the last things to do with a layer.
+	 */
+	abstract public void mergeFrom(Layer from);
+	
+	/**
+	 * @param other The other layer that is tested to be mergable with this.
+	 * @return Whether the other layer can be merged into this layer.
+	 */
+	abstract public boolean isMergable(Layer other);
+	
+	/**
+	 * @return The bounding rectangle this layer occupies on screen when looking
+	 * 		at x/y values or <code>null</code>, if infinite area or unknown
+	 * 		area is occupied.
+	 */
+	abstract public void visitBoundingBox(BoundingXYVisitor v);
+
+	abstract public Object getInfoComponent();
+	
+	abstract public Component[] getMenuEntries();
+	
+	/**
+	 * Called, when the layer is removed from the mapview and is going to be
+	 * destroyed.
+	 * 
+	 * This is because the Layer constructor can not add itself safely as listener
+	 * to the layerlist dialog, because there may be no such dialog yet (loaded
+	 * via command line parameter).
+	 */
+	public void destroy() {}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 321)
@@ -0,0 +1,321 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.layer;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
+
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Graphics;
+import java.awt.GridBagLayout;
+import java.awt.Point;
+import java.awt.event.ActionEvent;
+import java.io.File;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.Set;
+
+import javax.swing.Icon;
+import javax.swing.JLabel;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JSeparator;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.GpxExportAction;
+import org.openstreetmap.josm.actions.RenameLayerAction;
+import org.openstreetmap.josm.actions.SaveAction;
+import org.openstreetmap.josm.actions.SaveAsAction;
+import org.openstreetmap.josm.command.Command;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.DataSource;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
+import org.openstreetmap.josm.data.osm.visitor.MergeVisitor;
+import org.openstreetmap.josm.data.osm.visitor.SimplePaintVisitor;
+import org.openstreetmap.josm.data.osm.visitor.Visitor;
+import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.dialogs.ConflictDialog;
+import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
+import org.openstreetmap.josm.gui.dialogs.LayerListPopup;
+import org.openstreetmap.josm.tools.GBC;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * A layer holding data from a specific dataset.
+ * The data can be fully edited.
+ * 
+ * @author imi
+ */
+public class OsmDataLayer extends Layer {
+
+	public final static class DataCountVisitor implements Visitor {
+		public final int[] normal = new int[3];		
+		public final int[] deleted = new int[3];
+		public final String[] names = {"node", "segment", "way"};
+
+		private void inc(final OsmPrimitive osm, final int i) {
+			normal[i]++;
+			if (osm.deleted)
+				deleted[i]++;
+		}
+
+		public void visit(final Node n) {
+			inc(n, 0);
+		}
+
+		public void visit(final Segment ls) {
+			inc(ls, 1);
+		}
+
+		public void visit(final Way w) {
+			inc(w, 2);
+		}
+	}
+
+	public interface ModifiedChangedListener {
+		void modifiedChanged(boolean value, OsmDataLayer source);
+	}
+	public interface CommandQueueListener {
+		void commandChanged(int queueSize, int redoSize);
+	}
+
+	/**
+	 * @deprecated Use Main.main.undoRedo.add(...) instead.
+	 */
+	@Deprecated public void add(final Command c) {
+		Main.main.undoRedo.add(c);
+	}
+
+	/**
+	 * The data behind this layer.
+	 */
+	public final DataSet data;
+
+	/**
+	 * Whether the data of this layer was modified during the session.
+	 */
+	private boolean modified = false;
+	/**
+	 * Whether the data was modified due an upload of the data to the server.
+	 */
+	public boolean uploadedModified = false;
+
+	public final LinkedList<ModifiedChangedListener> listenerModified = new LinkedList<ModifiedChangedListener>();
+
+	private SimplePaintVisitor mapPainter = new SimplePaintVisitor();
+
+	/**
+	 * Construct a OsmDataLayer.
+	 */
+	public OsmDataLayer(final DataSet data, final String name, final File associatedFile) {
+		super(name);
+		this.data = data;
+		this.associatedFile = associatedFile;
+	}
+
+	/**
+	 * TODO: @return Return a dynamic drawn icon of the map data. The icon is
+	 * 		updated by a background thread to not disturb the running programm.
+	 */
+	@Override public Icon getIcon() {
+		return ImageProvider.get("layer", "osmdata_small");
+	}
+
+	/**
+	 * Draw all primitives in this layer but do not draw modified ones (they
+	 * are drawn by the edit layer).
+	 * Draw nodes last to overlap the segments they belong to.
+	 */
+	@Override public void paint(final Graphics g, final MapView mv) {
+		boolean inactive = Main.map.mapView.getActiveLayer() != this && Main.pref.getBoolean("draw.data.inactive_color", true);
+		if (Main.pref.getBoolean("draw.data.downloaded_area", false)) {
+			// FIXME this is inefficient; instead a proper polygon has to be built, and instead
+			// of drawing the outline, the outlying areas should perhaps be shaded.
+			for (DataSource src : data.dataSources) {
+				if (src.bounds != null) {
+					EastNorth en1 = Main.proj.latlon2eastNorth(src.bounds.min);
+					EastNorth en2 = Main.proj.latlon2eastNorth(src.bounds.max);
+					Point p1 = mv.getPoint(en1);
+					Point p2 = mv.getPoint(en2);
+					Color color = inactive ? SimplePaintVisitor.getPreferencesColor("inactive", Color.DARK_GRAY) :
+							SimplePaintVisitor.getPreferencesColor("downloaded Area", Color.YELLOW);
+					g.setColor(color);
+					g.drawRect(Math.min(p1.x,p2.x), Math.min(p1.y, p2.y), Math.abs(p2.x-p1.x), Math.abs(p2.y-p1.y));
+				}
+			}
+		}
+		mapPainter.setGraphics(g);
+		mapPainter.setNavigatableComponent(mv);
+		mapPainter.inactive = inactive;
+		mapPainter.visitAll(data);
+		Main.map.conflictDialog.paintConflicts(g, mv);
+	}
+
+	@Override public String getToolTipText() {
+		String tool = "";
+		tool += undeletedSize(data.nodes)+" "+trn("node", "nodes", undeletedSize(data.nodes))+", ";
+		tool += undeletedSize(data.segments)+" "+trn("segment", "segments", undeletedSize(data.segments))+", ";
+		tool += undeletedSize(data.ways)+" "+trn("way", "ways", undeletedSize(data.ways));
+		if (associatedFile != null)
+			tool = "<html>"+tool+"<br>"+associatedFile.getPath()+"</html>";
+		return tool;
+	}
+
+	@Override public void mergeFrom(final Layer from) {
+		final MergeVisitor visitor = new MergeVisitor(data,((OsmDataLayer)from).data);
+		for (final OsmPrimitive osm : ((OsmDataLayer)from).data.allPrimitives())
+			osm.visit(visitor);
+		visitor.fixReferences();
+		
+		// copy the merged layer's data source info
+		for (DataSource src : ((OsmDataLayer)from).data.dataSources) 
+			data.dataSources.add(src);
+		
+		if (visitor.conflicts.isEmpty())
+			return;
+		final ConflictDialog dlg = Main.map.conflictDialog;
+		dlg.add(visitor.conflicts);
+		JOptionPane.showMessageDialog(Main.parent,tr("There were conflicts during import."));
+		if (!dlg.isVisible())
+			dlg.action.actionPerformed(new ActionEvent(this, 0, ""));
+	}
+
+	@Override public boolean isMergable(final Layer other) {
+		return other instanceof OsmDataLayer;
+	}
+
+	@Override public void visitBoundingBox(final BoundingXYVisitor v) {
+		for (final Node n : data.nodes)
+			if (!n.deleted)
+				v.visit(n);
+	}
+
+	/**
+	 * Clean out the data behind the layer. This means clearing the redo/undo lists,
+	 * really deleting all deleted objects and reset the modified flags. This is done
+	 * after a successfull upload.
+	 * 
+	 * @param processed A list of all objects, that were actually uploaded. 
+	 * 		May be <code>null</code>, which means nothing has been uploaded but 
+	 * 		saved to disk instead. Note that an empty collection for "processed"
+	 *      means that an upload has been attempted but failed.
+	 */
+	public void cleanData(final Collection<OsmPrimitive> processed, boolean dataAdded) {
+
+		// return immediately if an upload attempt failed
+		if (processed != null && processed.isEmpty() && !dataAdded)
+			return;
+		
+		Main.main.undoRedo.clean();
+
+		// if uploaded, clean the modified flags as well
+		if (processed != null) {
+			final Set<OsmPrimitive> processedSet = new HashSet<OsmPrimitive>(processed);
+			for (final Iterator<Node> it = data.nodes.iterator(); it.hasNext();)
+				cleanIterator(it, processedSet);
+			for (final Iterator<Segment> it = data.segments.iterator(); it.hasNext();)
+				cleanIterator(it, processedSet);
+			for (final Iterator<Way> it = data.ways.iterator(); it.hasNext();)
+				cleanIterator(it, processedSet);
+		}
+
+		// update the modified flag
+		if (associatedFile != null && processed != null && !dataAdded)
+			return; // do nothing when uploading non-harmful changes.
+
+		// modified if server changed the data (esp. the id).
+		uploadedModified = associatedFile != null && processed != null && dataAdded;
+		setModified(uploadedModified);
+	}
+
+	/**
+	 * Clean the modified flag for the given iterator over a collection if it is in the
+	 * list of processed entries.
+	 * 
+	 * @param it The iterator to change the modified and remove the items if deleted.
+	 * @param processed A list of all objects that have been successfully progressed.
+	 * 		If the object in the iterator is not in the list, nothing will be changed on it.
+	 */
+	private void cleanIterator(final Iterator<? extends OsmPrimitive> it, final Collection<OsmPrimitive> processed) {
+		final OsmPrimitive osm = it.next();
+		if (!processed.remove(osm))
+			return;
+		osm.modified = false;
+		if (osm.deleted)
+			it.remove();
+	}
+
+	public boolean isModified() {
+		return modified;
+	}
+
+	public void setModified(final boolean modified) {
+		if (modified == this.modified)
+			return;
+		this.modified = modified;
+		for (final ModifiedChangedListener l : listenerModified)
+			l.modifiedChanged(modified, this);
+	}
+
+	/**
+	 * @return The number of not-deleted primitives in the list.
+	 */
+	private int undeletedSize(final Collection<? extends OsmPrimitive> list) {
+		int size = 0;
+		for (final OsmPrimitive osm : list)
+			if (!osm.deleted)
+				size++;
+		return size;
+	}
+
+	@Override public Object getInfoComponent() {
+		final DataCountVisitor counter = new DataCountVisitor();
+		for (final OsmPrimitive osm : data.allPrimitives())
+			osm.visit(counter);
+		final JPanel p = new JPanel(new GridBagLayout());
+		p.add(new JLabel(tr("{0} consists of:", name)), GBC.eol());
+		for (int i = 0; i < counter.normal.length; ++i) {
+			String s = counter.normal[i]+" "+trn(counter.names[i],counter.names[i]+"s",counter.normal[i]);
+			if (counter.deleted[i] > 0)
+				s += tr(" ({0} deleted.)",counter.deleted[i]);
+			p.add(new JLabel(s, ImageProvider.get("data", counter.names[i]), JLabel.HORIZONTAL), GBC.eop().insets(15,0,0,0));
+		}
+		return p;
+	}
+
+	@Override public Component[] getMenuEntries() {
+		if (Main.applet) {
+			return new Component[]{
+					new JMenuItem(new LayerListDialog.ShowHideLayerAction(this)),
+					new JMenuItem(new LayerListDialog.DeleteLayerAction(this)),
+					new JSeparator(),
+					new JMenuItem(new RenameLayerAction(associatedFile, this)),
+					new JSeparator(),
+					new JMenuItem(new LayerListPopup.InfoAction(this))};
+		}
+		return new Component[]{
+				new JMenuItem(new LayerListDialog.ShowHideLayerAction(this)),
+				new JMenuItem(new LayerListDialog.DeleteLayerAction(this)),
+				new JSeparator(),
+				new JMenuItem(new SaveAction(this)),
+				new JMenuItem(new SaveAsAction(this)),
+				new JMenuItem(new GpxExportAction(this)),
+				new JSeparator(),
+				new JMenuItem(new RenameLayerAction(associatedFile, this)),
+				new JSeparator(),
+				new JMenuItem(new LayerListPopup.InfoAction(this))};
+	}
+
+
+	public void setMapPainter(SimplePaintVisitor mapPainter) {
+    	this.mapPainter = mapPainter;
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java	(revision 321)
@@ -0,0 +1,314 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.layer;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
+
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Graphics;
+import java.awt.GridBagLayout;
+import java.awt.Point;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.File;
+import java.util.Collection;
+import java.util.LinkedList;
+
+import javax.swing.AbstractAction;
+import javax.swing.Box;
+import javax.swing.ButtonGroup;
+import javax.swing.Icon;
+import javax.swing.JColorChooser;
+import javax.swing.JFileChooser;
+import javax.swing.JLabel;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JRadioButton;
+import javax.swing.JSeparator;
+import javax.swing.filechooser.FileFilter;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.GpxExportAction;
+import org.openstreetmap.josm.actions.RenameLayerAction;
+import org.openstreetmap.josm.data.Preferences.PreferenceChangedListener;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
+import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
+import org.openstreetmap.josm.gui.dialogs.LayerListPopup;
+import org.openstreetmap.josm.tools.ColorHelper;
+import org.openstreetmap.josm.tools.DontShowAgainInfo;
+import org.openstreetmap.josm.tools.GBC;
+import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.UrlLabel;
+
+/**
+ * A layer holding data from a gps source.
+ * The data is read only.
+ * 
+ * @author imi
+ */
+public class RawGpsLayer extends Layer implements PreferenceChangedListener {
+
+	public class ConvertToDataLayerAction extends AbstractAction {
+		public ConvertToDataLayerAction() {
+			super(tr("Convert to data layer"), ImageProvider.get("converttoosm"));
+		}
+		public void actionPerformed(ActionEvent e) {
+			JPanel msg = new JPanel(new GridBagLayout());
+			msg.add(new JLabel(tr("<html>Upload of unprocessed GPS data as map data is considered harmful.<br>If you want to upload traces, look here:")), GBC.eol());
+			msg.add(new UrlLabel(tr("http://www.openstreetmap.org/traces")), GBC.eop());
+			if (!DontShowAgainInfo.show("convert_to_data", msg))
+				return;
+			DataSet ds = new DataSet();
+			for (Collection<GpsPoint> c : data) {
+				Way w = new Way();
+				Node start = null;
+				for (GpsPoint p : c) {
+					Node end = new Node(p.latlon);
+					ds.nodes.add(end);
+					if (start != null) {
+						Segment segment = new Segment(start,end);
+						w.segments.add(segment);
+						ds.segments.add(segment);
+					}
+					start = end;
+				}
+				ds.ways.add(w);
+			}
+			Main.main.addLayer(new OsmDataLayer(ds, tr("Converted from: {0}", RawGpsLayer.this.name), null));
+			Main.main.removeLayer(RawGpsLayer.this);
+		}
+	}
+
+	public static class GpsPoint {
+		public final LatLon latlon;
+		public final EastNorth eastNorth;
+		public final String time;
+		public GpsPoint(LatLon ll, String t) {
+			latlon = ll; 
+			eastNorth = Main.proj.latlon2eastNorth(ll); 
+			time = t;
+		}
+	}
+
+	/**
+	 * A list of ways which containing a list of points.
+	 */
+	public final Collection<Collection<GpsPoint>> data;
+	public final boolean fromServer;
+
+	public RawGpsLayer(boolean fromServer, Collection<Collection<GpsPoint>> data, String name, File associatedFile) {
+		super(name);
+		this.fromServer = fromServer;
+		this.associatedFile = associatedFile;
+		this.data = data;
+		Main.pref.listener.add(this);
+	}
+
+	/**
+	 * Return a static icon.
+	 */
+	@Override public Icon getIcon() {
+		return ImageProvider.get("layer", "rawgps_small");
+	}
+
+	@Override public void paint(Graphics g, MapView mv) {
+		String gpsCol = Main.pref.get("color.gps point");
+		String gpsColSpecial = Main.pref.get("color.layer "+name);
+		if (!gpsColSpecial.equals(""))
+			g.setColor(ColorHelper.html2color(gpsColSpecial));
+		else if (!gpsCol.equals(""))
+			g.setColor(ColorHelper.html2color(gpsCol));
+		else
+			g.setColor(Color.GRAY);
+		Point old = null;
+
+		boolean force = Main.pref.getBoolean("draw.rawgps.lines.force");
+		boolean lines = Main.pref.getBoolean("draw.rawgps.lines");
+		String linesKey = "draw.rawgps.lines.layer "+name;
+		if (Main.pref.hasKey(linesKey))
+			lines = Main.pref.getBoolean(linesKey);
+		boolean large = Main.pref.getBoolean("draw.rawgps.large");
+		for (Collection<GpsPoint> c : data) {
+			if (!force)
+				old = null;
+			for (GpsPoint p : c) {
+				Point screen = mv.getPoint(p.eastNorth);
+				if (lines && old != null)
+					g.drawLine(old.x, old.y, screen.x, screen.y);
+				else if (!large)
+					g.drawRect(screen.x, screen.y, 0, 0);
+				if (large)
+					g.fillRect(screen.x-1, screen.y-1, 3, 3);
+				old = screen;
+			}
+		}
+	}
+
+	@Override public String getToolTipText() {
+		int points = 0;
+		for (Collection<GpsPoint> c : data)
+			points += c.size();
+		String tool = data.size()+" "+trn("track", "tracks", data.size())
+		+" "+points+" "+trn("point", "points", points);
+		if (associatedFile != null)
+			tool = "<html>"+tool+"<br>"+associatedFile.getPath()+"</html>";
+		return tool;
+	}
+
+	@Override public void mergeFrom(Layer from) {
+		RawGpsLayer layer = (RawGpsLayer)from;
+		data.addAll(layer.data);
+	}
+
+	@Override public boolean isMergable(Layer other) {
+		return other instanceof RawGpsLayer;
+	}
+
+	@Override public void visitBoundingBox(BoundingXYVisitor v) {
+		for (Collection<GpsPoint> c : data)
+			for (GpsPoint p : c)
+				v.visit(p.eastNorth);
+	}
+
+	@Override public Object getInfoComponent() {
+		StringBuilder b = new StringBuilder();
+		int points = 0;
+		for (Collection<GpsPoint> c : data) {
+			b.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+trn("a track with {0} point","a track with {0} points", c.size(), c.size())+"<br>");
+			points += c.size();
+		}
+		b.append("</html>");
+		return "<html>"+trn("{0} consists of {1} track", "{0} consists of {1} tracks", data.size(), name, data.size())+" ("+trn("{0} point", "{0} points", points, points)+")<br>"+b.toString();
+	}
+
+	@Override public Component[] getMenuEntries() {
+		JMenuItem line = new JMenuItem(tr("Customize line drawing"), ImageProvider.get("mapmode/addsegment"));
+		line.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				JRadioButton[] r = new JRadioButton[3];
+				r[0] = new JRadioButton(tr("Use global settings."));
+				r[1] = new JRadioButton(tr("Draw lines between points for this layer."));
+				r[2] = new JRadioButton(tr("Do not draw lines between points for this layer."));
+				ButtonGroup group = new ButtonGroup();
+				Box panel = Box.createVerticalBox();
+				for (JRadioButton b : r) {
+					group.add(b);
+					panel.add(b);
+				}
+				String propName = "draw.rawgps.lines.layer "+name;
+				if (Main.pref.hasKey(propName))
+					group.setSelected(r[Main.pref.getBoolean(propName) ? 1:2].getModel(), true);
+				else
+					group.setSelected(r[0].getModel(), true);
+				int answer = JOptionPane.showConfirmDialog(Main.parent, panel, tr("Select line drawing options"), JOptionPane.OK_CANCEL_OPTION);
+				if (answer == JOptionPane.CANCEL_OPTION)
+					return;
+				if (group.getSelection() == r[0].getModel())
+					Main.pref.put(propName, null);
+				else
+					Main.pref.put(propName, group.getSelection() == r[1].getModel());
+				Main.map.repaint();
+			}
+		});
+
+		JMenuItem color = new JMenuItem(tr("Customize Color"), ImageProvider.get("colorchooser"));
+		color.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				String col = Main.pref.get("color.layer "+name, Main.pref.get("color.gps point", ColorHelper.color2html(Color.gray)));
+				JColorChooser c = new JColorChooser(ColorHelper.html2color(col));
+				Object[] options = new Object[]{tr("OK"), tr("Cancel"), tr("Default")};
+				int answer = JOptionPane.showOptionDialog(Main.parent, c, tr("Choose a color"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, null, options, options[0]);
+				switch (answer) {
+				case 0:
+					Main.pref.put("color.layer "+name, ColorHelper.color2html(c.getColor()));
+					break;
+				case 1:
+					return;
+				case 2:
+					Main.pref.put("color.layer "+name, null);
+					break;
+				}
+				Main.map.repaint();
+			}
+		});
+
+		JMenuItem tagimage = new JMenuItem(tr("Import images"), ImageProvider.get("tagimages"));
+		tagimage.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				JFileChooser fc = new JFileChooser(Main.pref.get("tagimages.lastdirectory"));
+				fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
+				fc.setMultiSelectionEnabled(true);
+				fc.setAcceptAllFileFilterUsed(false);
+				fc.setFileFilter(new FileFilter(){
+					@Override public boolean accept(File f) {
+						return f.isDirectory() || f.getName().toLowerCase().endsWith(".jpg");
+					}
+					@Override public String getDescription() {
+						return tr("JPEG images (*.jpg)");
+					}
+				});
+				fc.showOpenDialog(Main.parent);
+				File[] sel = fc.getSelectedFiles();
+				if (sel == null || sel.length == 0)
+					return;
+				LinkedList<File> files = new LinkedList<File>();
+				addRecursiveFiles(files, sel);
+				Main.pref.put("tagimages.lastdirectory", fc.getCurrentDirectory().getPath());
+				GeoImageLayer.create(files, RawGpsLayer.this);
+			}
+
+			private void addRecursiveFiles(LinkedList<File> files, File[] sel) {
+				for (File f : sel) {
+					if (f.isDirectory())
+						addRecursiveFiles(files, f.listFiles());
+					else if (f.getName().toLowerCase().endsWith(".jpg"))
+						files.add(f);
+				}
+			}
+		});
+
+		if (Main.applet)
+			return new Component[]{
+				new JMenuItem(new LayerListDialog.ShowHideLayerAction(this)),
+				new JMenuItem(new LayerListDialog.DeleteLayerAction(this)),
+				new JSeparator(),
+				color,
+				line,
+				new JMenuItem(new ConvertToDataLayerAction()),
+				new JSeparator(),
+				new JMenuItem(new RenameLayerAction(associatedFile, this)),
+				new JSeparator(),
+				new JMenuItem(new LayerListPopup.InfoAction(this))};
+		return new Component[]{
+				new JMenuItem(new LayerListDialog.ShowHideLayerAction(this)),
+				new JMenuItem(new LayerListDialog.DeleteLayerAction(this)),
+				new JSeparator(),
+				new JMenuItem(new GpxExportAction(this)),
+				color,
+				line,
+				tagimage,
+				new JMenuItem(new ConvertToDataLayerAction()),
+				new JSeparator(),
+				new JMenuItem(new RenameLayerAction(associatedFile, this)),
+				new JSeparator(),
+				new JMenuItem(new LayerListPopup.InfoAction(this))};
+	}
+
+	public void preferenceChanged(String key, String newValue) {
+		if (Main.map != null && (key.equals("draw.rawgps.lines") || key.equals("draw.rawgps.lines.force")))
+			Main.map.repaint();
+	}
+
+	@Override public void destroy() {
+		Main.pref.listener.remove(RawGpsLayer.this);
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/AudioMarker.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/AudioMarker.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/AudioMarker.java	(revision 321)
@@ -0,0 +1,91 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.layer.markerlayer;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.io.IOException;
+import java.net.URL;
+
+import javax.sound.sampled.AudioFormat;
+import javax.sound.sampled.AudioInputStream;
+import javax.sound.sampled.AudioSystem;
+import javax.sound.sampled.DataLine;
+import javax.sound.sampled.SourceDataLine;
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.coor.LatLon;
+
+/**
+ * Marker class with audio playback capability.
+ * 
+ * @author Frederik Ramm <frederik@remote.org>
+ *
+ */
+public class AudioMarker extends ButtonMarker {
+
+	private URL audioUrl;
+
+	/**
+	 * Verifies the parameter whether a new AudioMarker can be created and return
+	 * one or return <code>null</code>.
+	 */
+	public static AudioMarker create(LatLon ll, String url) {
+		try {
+			return new AudioMarker(ll, new URL(url));
+		} catch (Exception ex) {
+			return null;
+		}
+	}
+
+	private AudioMarker(LatLon ll, URL audioUrl) {
+		super(ll, "speech.png");
+		this.audioUrl = audioUrl;
+	}
+
+	@Override public void actionPerformed(ActionEvent ev) {
+		AudioInputStream audioInputStream = null;
+		try {
+			audioInputStream = AudioSystem.getAudioInputStream(audioUrl);
+		} catch (Exception e) {
+			audioMalfunction(e);
+			return;
+		}
+		AudioFormat	audioFormat = audioInputStream.getFormat();
+		SourceDataLine line = null;
+		DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat);
+		try {
+			line = (SourceDataLine) AudioSystem.getLine(info);
+			line.open(audioFormat);
+		} catch (Exception e)	{
+			audioMalfunction(e);
+			return;
+		}
+		line.start();
+
+		int	nBytesRead = 0;
+		byte[]	abData = new byte[16384];
+		while (nBytesRead != -1) {
+			try {
+				nBytesRead = audioInputStream.read(abData, 0, abData.length);
+			} catch (IOException e) {
+				audioMalfunction(e);
+				return;
+			}
+			if (nBytesRead >= 0) {
+				/* int	nBytesWritten = */ line.write(abData, 0, nBytesRead);
+			}
+		}
+		line.drain();
+		line.close();
+	}
+
+	void audioMalfunction(Exception ex) {
+		JOptionPane.showMessageDialog(Main.parent, 
+				"<html><b>" + 
+				tr("There was an error while trying to play the sound file for this marker.") +
+				"</b><br>" + ex.getClass().getName() + ":<br><i>" + ex.getMessage() + "</i></html>",
+				tr("Error playing sound"), JOptionPane.ERROR_MESSAGE);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/ButtonMarker.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/ButtonMarker.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/ButtonMarker.java	(revision 321)
@@ -0,0 +1,57 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.layer.markerlayer;
+
+import java.awt.Graphics;
+import java.awt.Insets;
+import java.awt.Point;
+import java.awt.Rectangle;
+
+import javax.swing.BorderFactory;
+import javax.swing.border.BevelBorder;
+import javax.swing.border.Border;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.gui.MapView;
+
+/**
+ * Marker class with button look-and-feel.
+ * 
+ * @author Frederik Ramm <frederik@remote.org>
+ *
+ */
+public class ButtonMarker extends Marker {
+
+	private Rectangle buttonRectangle;
+	
+	public ButtonMarker(LatLon ll, String buttonImage) {
+		super(ll, null, buttonImage);
+		buttonRectangle = new Rectangle(0, 0, symbol.getIconWidth(), symbol.getIconHeight());
+	}
+	
+	@Override public boolean containsPoint(Point p) {
+		Point screen = Main.map.mapView.getPoint(eastNorth);
+		buttonRectangle.setLocation(screen.x+4, screen.y+2);
+		return buttonRectangle.contains(p);
+	}
+	
+	@Override public void paint(Graphics g, MapView mv, boolean mousePressed, String show) {
+		Point screen = mv.getPoint(eastNorth);
+		buttonRectangle.setLocation(screen.x+4, screen.y+2);
+		symbol.paintIcon(mv, g, screen.x+4, screen.y+2);
+		Border b;
+		Point mousePosition = mv.getMousePosition();
+		if (mousePosition == null)
+			return; // mouse outside the whole window
+		
+		if (mousePressed) {
+			b = BorderFactory.createBevelBorder(BevelBorder.LOWERED);
+		} else {
+			b = BorderFactory.createBevelBorder(BevelBorder.RAISED);
+		}
+		Insets inset = b.getBorderInsets(mv);
+		Rectangle r = new Rectangle(buttonRectangle);
+		r.grow((inset.top+inset.bottom)/2, (inset.left+inset.right)/2);
+		b.paintBorder(mv, g, r.x, r.y, r.width, r.height);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/ImageMarker.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/ImageMarker.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/ImageMarker.java	(revision 321)
@@ -0,0 +1,91 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.layer.markerlayer;
+
+import java.awt.BorderLayout;
+import java.awt.Cursor;
+import java.awt.Image;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.net.URL;
+
+import javax.swing.Icon;
+import javax.swing.ImageIcon;
+import javax.swing.JDialog;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JToggleButton;
+import javax.swing.JViewport;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * Marker representing an image. Uses a special icon, and when clicked,
+ * displays an image view dialog. Re-uses some code from GeoImageLayer.
+ * 
+ * @author Frederik Ramm <frederik@remote.org>
+ *
+ */
+public class ImageMarker extends ButtonMarker {
+
+	public URL imageUrl;
+
+	public static ImageMarker create(LatLon ll, String url) {
+		try {
+			return new ImageMarker(ll, new URL(url));
+		} catch (Exception ex) {
+			return null;
+		}
+	}
+
+	private ImageMarker(LatLon ll, URL imageUrl) {
+		super(ll, "photo.png");
+		this.imageUrl = imageUrl;
+	}
+
+	@Override public void actionPerformed(ActionEvent ev) {
+		final JPanel p = new JPanel(new BorderLayout());
+		final JScrollPane scroll = new JScrollPane(new JLabel(loadScaledImage(imageUrl, 580)));
+		final JViewport vp = scroll.getViewport();
+		p.add(scroll, BorderLayout.CENTER);
+
+		final JToggleButton scale = new JToggleButton(ImageProvider.get("misc", "rectangle"));
+
+		JPanel p2 = new JPanel();
+		p2.add(scale);
+		p.add(p2, BorderLayout.SOUTH);
+		scale.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent ev) {
+				p.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+				if (scale.getModel().isSelected())
+					((JLabel)vp.getView()).setIcon(loadScaledImage(imageUrl, Math.max(vp.getWidth(), vp.getHeight())));
+				else
+					((JLabel)vp.getView()).setIcon(new ImageIcon(imageUrl));
+				p.setCursor(Cursor.getDefaultCursor());
+			}
+		});
+		scale.setSelected(true);
+		JOptionPane pane = new JOptionPane(p, JOptionPane.PLAIN_MESSAGE);
+		JDialog dlg = pane.createDialog(Main.parent, imageUrl.toString());
+		dlg.setModal(false);
+		dlg.setVisible(true);
+	}
+
+	private static Icon loadScaledImage(URL u, int maxSize) {
+		Image img = new ImageIcon(u).getImage();
+		int w = img.getWidth(null);
+		int h = img.getHeight(null);
+		if (w>h) {
+			h = Math.round(maxSize*((float)h/w));
+			w = maxSize;
+		} else {
+			w = Math.round(maxSize*((float)w/h));
+			h = maxSize;
+		}
+		return new ImageIcon(img.getScaledInstance(w, h, Image.SCALE_SMOOTH));
+	}
+
+}
Index: /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java	(revision 321)
@@ -0,0 +1,170 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.layer.markerlayer;
+
+import java.awt.Graphics;
+import java.awt.Point;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.File;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.Map;
+
+import javax.swing.Icon;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * Basic marker class. Requires a position, and supports 
+ * a custom icon and a name.
+ * 
+ * This class is also used to create appropriate Marker-type objects
+ * when waypoints are imported.
+ * 
+ * It hosts a public list object, named makers, containing implementations of
+ * the MarkerMaker interface. Whenever a Marker needs to be created, each 
+ * object in makers is called with the waypoint parameters (Lat/Lon and tag
+ * data), and the first one to return a Marker object wins.
+ * 
+ * By default, one the list contains one default "Maker" implementation that
+ * will create AudioMarkers for .wav files, ImageMarkers for .png/.jpg/.jpeg 
+ * files, and WebMarkers for everything else. (The creation of a WebMarker will
+ * fail if there's no vaild URL in the <link> tag, so it might still make sense
+ * to add Makers for such waypoints at the end of the list.)
+ * 
+ * The default implementation only looks at the value of the <link> tag inside
+ * the <wpt> tag of the GPX file.
+ * 
+ * <h2>HowTo implement a new Marker</h2>
+ * <ul>
+ * <li> Subclass Marker or ButtonMarker and override <code>containsPoint</code>
+ *      if you like to respond to user clicks</li>
+ * <li> Override paint, if you want a custom marker look (not "a label and a symbol")</li>
+ * <li> Implement MarkerCreator to return a new instance of your marker class</li>
+ * <li> In you plugin constructor, add an instance of your MarkerCreator
+ *      implementation either on top or bottom of Marker.markerProducers.
+ *      Add at top, if your marker should overwrite an current marker or at bottom
+ *      if you only add a new marker style.</li>
+ * </ul>
+ * 
+ * @author Frederik Ramm <frederik@remote.org>
+ */
+public class Marker implements ActionListener {
+
+	public final EastNorth eastNorth;
+	public final String text;
+	public final Icon symbol;
+
+	/**
+	 * Plugins can add their Marker creation stuff at the bottom or top of this list
+	 * (depending on whether they want to override default behaviour or just add new
+	 * stuff).
+	 */
+	public static LinkedList<MarkerProducers> markerProducers = new LinkedList<MarkerProducers>();
+
+	// Add one Maker specifying the default behaviour.
+	static {
+		Marker.markerProducers.add(new MarkerProducers() {
+			public Marker createMarker(LatLon ll, Map<String,String> data, File relativePath) {
+				String link = data.get("link");
+
+				// Try a relative file:// url, if the link is not in an URL-compatible form
+				if (relativePath != null && link != null && !isWellFormedAddress(link))
+					link = new File(relativePath, link).toURI().toString();
+
+				if (link == null)
+					return new Marker(ll, data.get("name"), data.get("symbol"));
+				if (link.endsWith(".wav"))
+					return AudioMarker.create(ll, link);
+				else if (link.endsWith(".png") || link.endsWith(".jpg") || link.endsWith(".jpeg") || link.endsWith(".gif"))
+					return ImageMarker.create(ll, link);
+				else
+					return WebMarker.create(ll, link);
+			}
+
+			private boolean isWellFormedAddress(String link) {
+				try {
+					new URL(link);
+					return true;
+				} catch (MalformedURLException x) {
+					return false;
+				}
+            }
+		});
+	}
+
+	public Marker(LatLon ll, String text, String iconName) {
+		eastNorth = Main.proj.latlon2eastNorth(ll); 
+		this.text = text;
+		Icon symbol = ImageProvider.getIfAvailable("markers",iconName);
+		if (symbol == null)
+			symbol = ImageProvider.getIfAvailable("symbols",iconName);
+		if (symbol == null)
+			symbol = ImageProvider.getIfAvailable("nodes",iconName);
+		this.symbol = symbol;
+	}
+
+	/**
+	 * Checks whether the marker display area contains the given point.
+	 * Markers not interested in mouse clicks may always return false.
+	 * 
+	 * @param p The point to check
+	 * @return <code>true</code> if the marker "hotspot" contains the point.
+	 */
+	public boolean containsPoint(Point p) {
+		return false;
+	}
+
+	/**
+	 * Called when the mouse is clicked in the marker's hotspot. Never
+	 * called for markers which always return false from containsPoint.
+	 * 
+	 * @param ev A dummy ActionEvent
+	 */
+	public void actionPerformed(ActionEvent ev) {
+	}
+
+	/**
+	 * Paints the marker.
+	 * @param g graphics context
+	 * @param mv map view
+	 * @param mousePressed true if the left mouse button is pressed
+	 */
+	public void paint(Graphics g, MapView mv, boolean mousePressed, String show) {
+		Point screen = mv.getPoint(eastNorth);
+		if (symbol != null) {
+			symbol.paintIcon(mv, g, screen.x-symbol.getIconWidth()/2, screen.y-symbol.getIconHeight()/2);
+		} else {
+			g.drawLine(screen.x-2, screen.y-2, screen.x+2, screen.y+2);
+			g.drawLine(screen.x+2, screen.y-2, screen.x-2, screen.y+2);
+		}
+
+		if ((text != null) && (show.equalsIgnoreCase("show")))
+			g.drawString(text, screen.x+4, screen.y+2);
+	}
+
+	/**
+	 * Returns an object of class Marker or one of its subclasses
+	 * created from the parameters given.
+	 *
+	 * @param ll lat/lon for marker
+	 * @param data hash containing keys and values from the GPX waypoint structure
+	 * @param relativePath An path to use for constructing relative URLs or 
+	 *        <code>null</code> for no relative URLs
+	 * @return a new Marker object
+	 */
+	public static Marker createMarker(LatLon ll, HashMap<String,String> data, File relativePath) {
+		for (MarkerProducers maker : Marker.markerProducers) {
+			Marker marker = maker.createMarker(ll, data, relativePath);
+			if (marker != null)
+				return marker;
+		}
+		return null;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java	(revision 321)
@@ -0,0 +1,174 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.layer.markerlayer;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
+
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Graphics;
+import java.awt.Point;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.io.File;
+import java.util.Collection;
+
+import javax.swing.Icon;
+import javax.swing.JColorChooser;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JSeparator;
+import javax.swing.SwingUtilities;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.RenameLayerAction;
+import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
+import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
+import org.openstreetmap.josm.gui.dialogs.LayerListPopup;
+import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.tools.ColorHelper;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * A layer holding markers.
+ * 
+ * Markers are GPS points with a name and, optionally, a symbol code attached;
+ * marker layers can be created from waypoints when importing raw GPS data,
+ * but they may also come from other sources.
+ * 
+ * The symbol code is for future use.
+ * 
+ * The data is read only.
+ */
+public class MarkerLayer extends Layer {
+
+	/**
+	 * A list of markers.
+	 */
+	public final Collection<Marker> data;
+	private boolean mousePressed = false;
+	
+	public MarkerLayer(Collection<Marker> indata, String name, File associatedFile) {
+		super(name);
+		this.associatedFile = associatedFile;
+		this.data = indata;
+		
+		SwingUtilities.invokeLater(new Runnable(){
+			public void run() {
+				Main.map.mapView.addMouseListener(new MouseAdapter() {
+					@Override public void mousePressed(MouseEvent e) {
+						if (e.getButton() != MouseEvent.BUTTON1)
+							return;
+						mousePressed  = true;
+						if (visible)
+							Main.map.mapView.repaint();
+					}
+					@Override public void mouseReleased(MouseEvent ev) {
+						if (ev.getButton() != MouseEvent.BUTTON1)
+							return;
+						mousePressed = false;
+						if (!visible)
+							return;
+						if (ev.getPoint() != null) {
+							for (Marker mkr : data) {
+								if (mkr.containsPoint(ev.getPoint()))
+									mkr.actionPerformed(new ActionEvent(this, 0, null));
+							}
+						}
+						Main.map.mapView.repaint();
+					}
+				});
+			}
+		});
+	}
+
+	/**
+	 * Return a static icon.
+	 */
+	@Override public Icon getIcon() {
+		return ImageProvider.get("layer", "marker_small");
+	}
+
+	@Override public void paint(Graphics g, MapView mv) {
+		boolean mousePressedTmp = mousePressed;
+		Point mousePos = mv.getMousePosition();
+		String mkrCol = Main.pref.get("color.gps marker");
+		String mkrColSpecial = Main.pref.get("color.layer "+name);
+        String mkrTextShow = Main.pref.get("marker.show "+name, "show");
+
+		if (!mkrColSpecial.equals(""))
+			g.setColor(ColorHelper.html2color(mkrColSpecial));
+		else if (!mkrCol.equals(""))
+			g.setColor(ColorHelper.html2color(mkrCol));
+		else
+			g.setColor(Color.GRAY);
+
+		for (Marker mkr : data) {
+			if (mousePos != null && mkr.containsPoint(mousePos)) {
+				mkr.paint(g, mv, mousePressedTmp, mkrTextShow);
+				mousePressedTmp = false;
+			} else {
+				mkr.paint(g, mv, false, mkrTextShow);
+			}
+		}
+	}
+
+	@Override public String getToolTipText() {
+		return data.size()+" "+trn("marker", "markers", data.size());
+	}
+
+	@Override public void mergeFrom(Layer from) {
+		MarkerLayer layer = (MarkerLayer)from;
+		data.addAll(layer.data);
+	}
+
+	@Override public boolean isMergable(Layer other) {
+		return other instanceof MarkerLayer;
+	}
+
+	@Override public void visitBoundingBox(BoundingXYVisitor v) {
+		for (Marker mkr : data)
+			v.visit(mkr.eastNorth);
+	}
+
+	@Override public Object getInfoComponent() {
+		return "<html>"+trn("{0} consists of {1} marker", "{0} consists of {1} markers", data.size(), name, data.size()) + "</html>";
+	}
+
+	@Override public Component[] getMenuEntries() {
+		JMenuItem color = new JMenuItem(tr("Customize Color"), ImageProvider.get("colorchooser"));
+		color.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				String col = Main.pref.get("color.layer "+name, Main.pref.get("color.gps marker", ColorHelper.color2html(Color.gray)));
+				JColorChooser c = new JColorChooser(ColorHelper.html2color(col));
+				Object[] options = new Object[]{tr("OK"), tr("Cancel"), tr("Default")};
+				int answer = JOptionPane.showOptionDialog(Main.parent, c, tr("Choose a color"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, null, options, options[0]);
+				switch (answer) {
+				case 0:
+					Main.pref.put("color.layer "+name, ColorHelper.color2html(c.getColor()));
+					break;
+				case 1:
+					return;
+				case 2:
+					Main.pref.put("color.layer "+name, null);
+					break;
+				}
+				Main.map.repaint();
+			}
+		});
+
+		return new Component[] {
+			new JMenuItem(new LayerListDialog.ShowHideLayerAction(this)),
+            new JMenuItem(new LayerListDialog.ShowHideMarkerText(this)),
+			new JMenuItem(new LayerListDialog.DeleteLayerAction(this)),
+			new JSeparator(),
+			color,
+			new JMenuItem(new RenameLayerAction(associatedFile, this)),
+			new JSeparator(),
+			new JMenuItem(new LayerListPopup.InfoAction(this))
+		};
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerProducers.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerProducers.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerProducers.java	(revision 321)
@@ -0,0 +1,29 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.layer.markerlayer;
+
+import java.io.File;
+import java.util.Map;
+
+import org.openstreetmap.josm.data.coor.LatLon;
+
+/**
+ * This interface has to be implemented by anyone who wants to create markers.
+ * 
+ * When reading a gpx file, all implementations of MarkerMaker registered with 
+ * the Marker are consecutively called until one returns a Marker object.
+ * 
+ * @author Frederik Ramm <frederik@remote.org>
+ */
+public interface MarkerProducers {
+	/**
+	 * Returns a Marker object if this implementation wants to create one for the
+	 * given input data, or <code>null</code> otherwise.
+	 * 
+	 * @param ll lat/lon for the marker position
+	 * @param data A map of all tags found in the <wpt> node of the gpx file. 
+	 * @param relativePath An path to use for constructing relative URLs or 
+	 *        <code>null</code> for no relative URLs
+	 * @return A Marker object, or <code>null</code>.
+	 */
+	public Marker createMarker(LatLon ll, Map<String,String> data, File relativePath);
+}
Index: /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/WebMarker.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/WebMarker.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/WebMarker.java	(revision 321)
@@ -0,0 +1,48 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.layer.markerlayer;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.net.URL;
+
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.tools.OpenBrowser;
+
+/**
+ * Marker class with Web URL activation.
+ * 
+ * @author Frederik Ramm <frederik@remote.org>
+ *
+ */
+public class WebMarker extends ButtonMarker {
+
+	public URL webUrl;
+
+	public static WebMarker create (LatLon ll, String url) {
+		try {
+			return new WebMarker(ll, new URL(url));
+		} catch (Exception ex) {
+			return null;
+		}
+	}
+
+	private WebMarker(LatLon ll, URL webUrl) {
+		super(ll, "web.png");
+		this.webUrl = webUrl;
+	}
+
+	@Override public void actionPerformed(ActionEvent ev) {
+		String error = OpenBrowser.displayUrl(webUrl.toString());
+		if (error != null) {
+			JOptionPane.showMessageDialog(Main.parent, 
+					"<html><b>" + 
+					tr("There was an error while trying to display the URL for this marker") +
+					"</b><br>" + tr("(URL was: ") + webUrl.toString() + ")" + "<br>" + error, 
+					tr("Error displaying URL"), JOptionPane.ERROR_MESSAGE);
+		}
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/AdvancedPreference.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/AdvancedPreference.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/AdvancedPreference.java	(revision 321)
@@ -0,0 +1,123 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.preferences;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.Dimension;
+import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.util.Map;
+import java.util.TreeSet;
+import java.util.Map.Entry;
+
+import javax.swing.Box;
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.JTextField;
+import javax.swing.table.DefaultTableModel;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.tools.GBC;
+
+public class AdvancedPreference implements PreferenceSetting {
+
+	private Map<String,String> orig;
+	private DefaultTableModel model;
+
+	public void addGui(final PreferenceDialog gui) {
+		JPanel p = gui.createPreferenceTab("advanced", tr("Advanced Preferences"), tr("Setting Preference entries directly. Use with caution!"));
+
+		model = new DefaultTableModel(new String[]{"Key", "Value"},0) {
+			@Override public boolean isCellEditable(int row, int column) {
+				return column != 0;
+			}
+		};
+		final JTable list = new JTable(model);
+		JScrollPane scroll = new JScrollPane(list);
+		p.add(scroll, GBC.eol().fill(GBC.BOTH));
+		scroll.setPreferredSize(new Dimension(400,200));
+
+		orig = Main.pref.getAllPrefix("");
+		orig.remove("osm-server.password");
+
+		for (String s : new TreeSet<String>(orig.keySet()))
+			model.addRow(new String[]{s, Main.pref.get(s)});
+
+		JButton add = new JButton(tr("Add"));
+		p.add(Box.createHorizontalGlue(), GBC.std().fill(GBC.HORIZONTAL));
+		p.add(add, GBC.std().insets(0,5,0,0));
+		add.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				JPanel p = new JPanel(new GridBagLayout());
+				p.add(new JLabel("Key"), GBC.std().insets(0,0,5,0));
+				JTextField key = new JTextField(10);
+				JTextField value = new JTextField(10);
+				p.add(key, GBC.eop().insets(5,0,0,0).fill(GBC.HORIZONTAL));
+				p.add(new JLabel("Value"), GBC.std().insets(0,0,5,0));
+				p.add(value, GBC.eol().insets(5,0,0,0).fill(GBC.HORIZONTAL));
+				int answer = JOptionPane.showConfirmDialog(gui, p, tr("Enter a new key/value pair"), JOptionPane.OK_CANCEL_OPTION);
+				if (answer == JOptionPane.OK_OPTION)
+					model.addRow(new String[]{key.getText(), value.getText()});
+			}
+		});
+
+		JButton edit = new JButton(tr("Edit"));
+		p.add(edit, GBC.std().insets(5,5,5,0));
+		edit.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				edit(gui, list);
+			}
+		});
+
+		JButton delete = new JButton(tr("Delete"));
+		p.add(delete, GBC.std().insets(0,5,0,0));
+		delete.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				if (list.getSelectedRowCount() == 0) {
+					JOptionPane.showMessageDialog(gui, tr("Please select the row to delete."));
+					return;
+				}
+				while (list.getSelectedRow() != -1)
+					model.removeRow(list.getSelectedRow());
+			}
+		});
+
+		list.addMouseListener(new MouseAdapter(){
+			@Override public void mouseClicked(MouseEvent e) {
+				if (e.getClickCount() == 2)
+					edit(gui, list);
+			}
+		});
+	}
+
+	public void ok() {
+		for (int i = 0; i < model.getRowCount(); ++i) {
+			String key = model.getValueAt(i,0).toString();
+			String value = model.getValueAt(i,1).toString();
+			String origValue = orig.get(key);
+			if (origValue == null || !origValue.equals(value))
+				Main.pref.put(key, value);
+			orig.remove(key); // processed.
+		}
+		for (Entry<String, String> e : orig.entrySet())
+			Main.pref.put(e.getKey(), null);
+	}
+
+
+	private void edit(final PreferenceDialog gui, final JTable list) {
+		if (list.getSelectedRowCount() != 1) {
+			JOptionPane.showMessageDialog(gui, tr("Please select the row to edit."));
+			return;
+		}
+		String v = JOptionPane.showInputDialog(tr("New value for {0}", model.getValueAt(list.getSelectedRow(), 0)), model.getValueAt(list.getSelectedRow(), 1));
+		if (v != null)
+			model.setValueAt(v, list.getSelectedRow(), 1);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/ColorPreference.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/ColorPreference.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/ColorPreference.java	(revision 321)
@@ -0,0 +1,170 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.preferences;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.xnap.commons.i18n.I18n.marktr;
+
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.Vector;
+
+import javax.swing.JButton;
+import javax.swing.JColorChooser;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.ListSelectionModel;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableCellRenderer;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.visitor.SimplePaintVisitor;
+import org.openstreetmap.josm.tools.ColorHelper;
+import org.openstreetmap.josm.tools.GBC;
+
+public class ColorPreference implements PreferenceSetting {
+
+	private DefaultTableModel tableModel;
+	private JTable colors;
+
+	/**
+	 * Set the colors to be shown in the preference table. This method creates a table model if
+	 * none exists and overwrites all existing values.
+	 * @param colorMap the map holding the colors 
+	 * (key = color id (without prefixes, so only <code>background</code>; not <code>color.background</code>), 
+	 * value = html representation of the color.
+	 */
+	public void setColorModel(Map<String, String> colorMap) {
+		if(tableModel == null) {
+			tableModel = new DefaultTableModel();
+			tableModel.addColumn(tr("Color"));
+			tableModel.addColumn(tr("Name"));
+		}
+		
+		// clear old model:
+		while(tableModel.getRowCount() > 0) {
+			tableModel.removeRow(0);
+		}
+		// fill model with colors:
+		List<String> colorKeyList = new ArrayList<String>();
+		for(String key : colorMap.keySet()) {
+			colorKeyList.add(key);
+		}
+		Collections.sort(colorKeyList);
+		for (String key : colorKeyList) {
+			Vector<Object> row = new Vector<Object>(2);
+			row.add(key);
+			row.add(ColorHelper.html2color(colorMap.get(key)));
+			tableModel.addRow(row);
+		}
+		if(this.colors != null) {
+			this.colors.repaint();
+		}		
+	}
+	
+	/**
+	 * Returns a map with the colors in the table (key = color name without prefix, value = html color code).
+	 * @return a map holding the colors.
+	 */
+	public Map<String, String> getColorModel() {
+		String key;
+		String value;
+		Map<String, String> colorMap = new HashMap<String, String>();
+		for(int row = 0; row < tableModel.getRowCount(); ++row) {
+			key = (String)tableModel.getValueAt(row, 0);
+			value = ColorHelper.color2html((Color)tableModel.getValueAt(row, 1));
+			colorMap.put(key, value);
+		}
+		return colorMap;
+	}
+	
+	public void addGui(final PreferenceDialog gui) {
+		// initial fill with colors from preferences:
+		Map<String,String> prefColorMap = new TreeMap<String, String>(Main.pref.getAllPrefix("color."));
+		fixColorPrefixes(prefColorMap);
+		Map<String,String> colorMap = new TreeMap<String, String>();
+		for(String key : prefColorMap.keySet()) {
+			colorMap.put(key.substring("color.".length()), prefColorMap.get(key));
+		}
+		setColorModel(colorMap);
+		
+		colors = new JTable(tableModel) {
+			@Override public boolean isCellEditable(int row, int column) {
+				return false;
+			}
+		};
+		colors.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+		final TableCellRenderer oldColorsRenderer = colors.getDefaultRenderer(Object.class);
+		colors.setDefaultRenderer(Object.class, new TableCellRenderer(){
+			public Component getTableCellRendererComponent(JTable t, Object o, boolean selected, boolean focus, int row, int column) {
+				if (column == 1) {
+					JLabel l = new JLabel(ColorHelper.color2html((Color)o));
+					l.setBackground((Color)o);
+					l.setOpaque(true);
+					return l;
+				}
+				return oldColorsRenderer.getTableCellRendererComponent(t,tr(o.toString()),selected,focus,row,column);
+			}
+		});
+		colors.getColumnModel().getColumn(1).setWidth(100);
+
+		JButton colorEdit = new JButton(tr("Choose"));
+		colorEdit.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				if (colors.getSelectedRowCount() == 0) {
+					JOptionPane.showMessageDialog(gui, tr("Please select a color."));
+					return;
+				}
+				int sel = colors.getSelectedRow();
+				JColorChooser chooser = new JColorChooser((Color)colors.getValueAt(sel, 1));
+				int answer = JOptionPane.showConfirmDialog(gui, chooser, tr("Choose a color for {0}", colors.getValueAt(sel, 0)), JOptionPane.OK_CANCEL_OPTION);
+				if (answer == JOptionPane.OK_OPTION)
+					colors.setValueAt(chooser.getColor(), sel, 1);
+			}
+		});
+		colors.setToolTipText(tr("Colors used by different objects in JOSM."));
+		colors.setPreferredScrollableViewportSize(new Dimension(100,112));
+		gui.display.add(new JLabel(tr("Colors")), GBC.eol());
+		gui.display.add(new JScrollPane(colors), GBC.eol().fill(GBC.BOTH));
+		gui.display.add(colorEdit, GBC.eol().anchor(GBC.EAST));
+    }
+
+	/**
+	 * Add all missing color entries.
+	 */
+	private void fixColorPrefixes(Map<String, String> prefColorMap) {
+		String[] cp = {
+			marktr("background"), ColorHelper.color2html(Color.black),
+			marktr("node"), ColorHelper.color2html(Color.red),
+			marktr("segment"), ColorHelper.color2html(SimplePaintVisitor.darkgreen),
+			marktr("way"), ColorHelper.color2html(SimplePaintVisitor.darkblue),
+			marktr("incomplete way"), ColorHelper.color2html(SimplePaintVisitor.darkerblue),
+			marktr("selected"), ColorHelper.color2html(Color.white),
+			marktr("gps point"), ColorHelper.color2html(Color.gray),
+			marktr("conflict"), ColorHelper.color2html(Color.gray),
+			marktr("scale"), ColorHelper.color2html(Color.white),
+			marktr("inactive"), ColorHelper.color2html(Color.darkGray),
+		};
+		for (int i = 0; i < cp.length/2; ++i)
+			if (!Main.pref.hasKey("color."+cp[i*2]))
+				Main.pref.put("color."+cp[i*2], cp[i*2+1]);
+    }
+
+	public void ok() {
+		for (int i = 0; i < colors.getRowCount(); ++i) {
+			String name = (String)colors.getValueAt(i, 0);
+			Color col = (Color)colors.getValueAt(i, 1);
+			Main.pref.put("color." + name, ColorHelper.color2html(col));
+		}
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/CsvPreference.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/CsvPreference.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/CsvPreference.java	(revision 321)
@@ -0,0 +1,38 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.preferences;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import javax.swing.JLabel;
+import javax.swing.JTextField;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.tools.GBC;
+
+public class CsvPreference implements PreferenceSetting {
+
+	/**
+	 * Comma seperated import string specifier or <code>null</code> if the first
+	 * data line should be interpreted as one.
+	 */
+	private JTextField csvImportString = new JTextField(20);
+
+	public void addGui(PreferenceDialog gui) {
+		csvImportString.setText(Main.pref.get("csv.importstring"));
+		csvImportString.setToolTipText(tr("<html>Import string specification. lat/lon and time are imported.<br>" +
+				"<b>lat</b>: The latitude coordinate<br>" +
+				"<b>lon</b>: The longitude coordinate<br>" +
+				"<b>time</b>: The measured time as string<br>" +
+				"<b>ignore</b>: Skip this field<br>" +
+				"An example: \"ignore ignore lat lon\" will use ' ' as delimiter, skip the first two values and read then lat/lon.<br>" +
+		"Other example: \"lat,lon\" will just read lat/lon values comma seperated.</html>"));
+
+		gui.connection.add(new JLabel(tr("CSV import specification (empty: read from first line in data)")), GBC.eol());
+		gui.connection.add(csvImportString, GBC.eop().fill(GBC.HORIZONTAL));
+    }
+
+	public void ok() {
+		Main.pref.put("csv.importstring", csvImportString.getText());
+    }
+
+}
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/DrawingPreference.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/DrawingPreference.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/DrawingPreference.java	(revision 321)
@@ -0,0 +1,78 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.preferences;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JCheckBox;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.tools.GBC;
+
+public class DrawingPreference implements PreferenceSetting {
+
+	private JCheckBox drawRawGpsLines = new JCheckBox(tr("Draw lines between raw gps points."));
+	private JCheckBox forceRawGpsLines = new JCheckBox(tr("Force lines if no segments imported."));
+	private JCheckBox largeGpsPoints = new JCheckBox(tr("Draw large GPS points."));
+	private JCheckBox directionHint = new JCheckBox(tr("Draw Direction Arrows"));
+	private JCheckBox segmentOrderNumber = new JCheckBox(tr("Draw segment order numbers"));
+	private JCheckBox sourceBounds = new JCheckBox(tr("Draw boundaries of downloaded data"));
+	private JCheckBox inactive = new JCheckBox(tr("Draw inactive layers in other color"));
+
+	public void addGui(PreferenceDialog gui) {
+		// drawRawGpsLines
+		drawRawGpsLines.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				if (!drawRawGpsLines.isSelected())
+					forceRawGpsLines.setSelected(false);
+				forceRawGpsLines.setEnabled(drawRawGpsLines.isSelected());
+			}
+		});
+		drawRawGpsLines.setSelected(Main.pref.getBoolean("draw.rawgps.lines"));
+		drawRawGpsLines.setToolTipText(tr("If your gps device draw too few lines, select this to draw lines along your way."));
+		gui.display.add(drawRawGpsLines, GBC.eol().insets(20,0,0,0));
+
+		// forceRawGpsLines
+		forceRawGpsLines.setToolTipText(tr("Force drawing of lines if the imported data contain no line information."));
+		forceRawGpsLines.setSelected(Main.pref.getBoolean("draw.rawgps.lines.force"));
+		forceRawGpsLines.setEnabled(drawRawGpsLines.isSelected());
+		gui.display.add(forceRawGpsLines, GBC.eop().insets(40,0,0,0));
+		
+		// largeGpsPoints
+		largeGpsPoints.setSelected(Main.pref.getBoolean("draw.rawgps.large"));
+		largeGpsPoints.setToolTipText(tr("Draw larger dots for the GPS points."));
+		gui.display.add(largeGpsPoints, GBC.eop().insets(20,0,0,0));
+		
+		// directionHint
+		directionHint.setToolTipText(tr("Draw direction hints for all segments."));
+		directionHint.setSelected(Main.pref.getBoolean("draw.segment.direction"));
+		gui.display.add(directionHint, GBC.eop().insets(20,0,0,0));
+		
+		// segment order number
+		segmentOrderNumber.setToolTipText(tr("Draw the order numbers of all segments within their way."));
+		segmentOrderNumber.setSelected(Main.pref.getBoolean("draw.segment.order_number"));
+		gui.display.add(segmentOrderNumber, GBC.eop().insets(20,0,0,0));
+		
+		// downloaded area
+		sourceBounds.setToolTipText(tr("Draw the boundaries of data loaded from the server."));
+		sourceBounds.setSelected(Main.pref.getBoolean("draw.data.downloaded_area", true));
+		gui.display.add(sourceBounds, GBC.eop().insets(20,0,0,0));
+		
+		// background layers in inactive color
+		inactive.setToolTipText(tr("Draw the inactive data layers in a different color."));
+		inactive.setSelected(Main.pref.getBoolean("draw.data.inactive_color", true));
+		gui.display.add(inactive, GBC.eop().insets(20,0,0,0));
+	}
+
+	public void ok() {
+		Main.pref.put("draw.rawgps.lines", drawRawGpsLines.isSelected());
+		Main.pref.put("draw.rawgps.lines.force", forceRawGpsLines.isSelected());
+		Main.pref.put("draw.rawgps.large", largeGpsPoints.isSelected());
+		Main.pref.put("draw.segment.direction", directionHint.isSelected());
+		Main.pref.put("draw.segment.order_number", segmentOrderNumber.isSelected());
+		Main.pref.put("draw.data.downloaded_area", sourceBounds.isSelected());
+		Main.pref.put("draw.data.inactive_color", inactive.isSelected());
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/FilePreferences.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/FilePreferences.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/FilePreferences.java	(revision 321)
@@ -0,0 +1,32 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.preferences;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import javax.swing.Box;
+import javax.swing.JCheckBox;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.tools.GBC;
+
+/**
+ * Out of pure laziness, I add the file stuff to connection tab.
+ * Feel free to fix this.
+ * 
+ * @author imi
+ */
+public class FilePreferences implements PreferenceSetting {
+
+	private JCheckBox keepBackup = new JCheckBox(tr("Keep backup files"));
+	
+	public void addGui(PreferenceDialog gui) {
+		keepBackup.setSelected(Main.pref.getBoolean("save.keepbackup"));
+		keepBackup.setToolTipText(tr("When saving, keep backup files ending with a ~"));
+		gui.connection.add(keepBackup, GBC.eol().insets(20,0,0,0));
+		gui.connection.add(Box.createVerticalGlue(), GBC.eol().fill(GBC.VERTICAL));
+    }
+
+	public void ok() {
+		Main.pref.put("save.keepbackup", keepBackup.isSelected());
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/LafPreference.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/LafPreference.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/LafPreference.java	(revision 321)
@@ -0,0 +1,54 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.preferences;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.Component;
+
+import javax.swing.DefaultListCellRenderer;
+import javax.swing.JComboBox;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.ListCellRenderer;
+import javax.swing.UIManager;
+import javax.swing.UIManager.LookAndFeelInfo;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.tools.GBC;
+
+public class LafPreference implements PreferenceSetting {
+
+	/**
+	 * ComboBox with all look and feels.
+	 */
+	private JComboBox lafCombo;
+
+	public void addGui(PreferenceDialog gui) {
+		lafCombo = new JComboBox(UIManager.getInstalledLookAndFeels());
+		
+		String laf = Main.pref.get("laf");
+		for (int i = 0; i < lafCombo.getItemCount(); ++i) {
+			if (((LookAndFeelInfo)lafCombo.getItemAt(i)).getClassName().equals(laf)) {
+				lafCombo.setSelectedIndex(i);
+				break;
+			}
+		}
+
+		final ListCellRenderer oldRenderer = lafCombo.getRenderer();
+		lafCombo.setRenderer(new DefaultListCellRenderer(){
+			@Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
+				return oldRenderer.getListCellRendererComponent(list, ((LookAndFeelInfo)value).getName(), index, isSelected, cellHasFocus);
+			}
+		});
+		lafCombo.addActionListener(gui.requireRestartAction);
+
+		gui.display.add(new JLabel(tr("Look and Feel")), GBC.std());
+		gui.display.add(GBC.glue(5,0), GBC.std().fill(GBC.HORIZONTAL));
+		gui.display.add(lafCombo, GBC.eol().fill(GBC.HORIZONTAL));
+	}
+
+	public void ok() {
+		Main.pref.put("laf", ((LookAndFeelInfo)lafCombo.getSelectedItem()).getClassName());
+    }
+
+}
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/PluginPreference.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/PluginPreference.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/PluginPreference.java	(revision 321)
@@ -0,0 +1,300 @@
+//License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.preferences;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
+
+import java.awt.Dimension;
+import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.File;
+import java.io.FileReader;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.Set;
+import java.util.SortedMap;
+import java.util.TreeMap;
+import java.util.Map.Entry;
+
+import javax.swing.AbstractAction;
+import javax.swing.BorderFactory;
+import javax.swing.Box;
+import javax.swing.DefaultListModel;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.plugins.PluginDownloader;
+import org.openstreetmap.josm.plugins.PluginException;
+import org.openstreetmap.josm.plugins.PluginInformation;
+import org.openstreetmap.josm.plugins.PluginProxy;
+import org.openstreetmap.josm.tools.GBC;
+import org.openstreetmap.josm.tools.XmlObjectParser.Uniform;
+
+public class PluginPreference implements PreferenceSetting {
+
+	/**
+	 * Only the plugin name, it's jar location and the description.
+	 * In other words, this is the minimal requirement the plugin preference page
+	 * needs to show the plugin as available
+	 * 
+	 * @author imi
+	 */
+	public static class PluginDescription {
+		public String name;
+		public String description;
+		public String resource;
+		public String version;
+		public PluginDescription(String name, String description, String resource, String version) {
+			this.name = name;
+			this.description = description;
+			this.resource = resource;
+			this.version = version;
+		}
+		public PluginDescription() {
+		}
+	}
+
+	private Map<PluginDescription, Boolean> pluginMap;
+	private Box pluginPanel = Box.createVerticalBox();
+	private JPanel plugin;
+	private PreferenceDialog gui;
+
+	public void addGui(final PreferenceDialog gui) {
+		this.gui = gui;
+		plugin = gui.createPreferenceTab("plugin", tr("Plugins"), tr("Configure available plugins."));
+		JScrollPane pluginPane = new JScrollPane(pluginPanel, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
+		pluginPane.setBorder(null);
+		plugin.add(pluginPane, GBC.eol().fill(GBC.BOTH));
+		plugin.add(GBC.glue(0,10), GBC.eol());
+		JButton morePlugins = new JButton(tr("Check for plugins"));
+		morePlugins.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				int count = PluginDownloader.downloadDescription();
+				if (count > 0)
+					JOptionPane.showMessageDialog(Main.parent,
+							trn("Downloaded plugin information from {0} site",
+									"Downloaded plugin information from {0} sites", count, count));
+				else
+					JOptionPane.showMessageDialog(Main.parent, tr("No plugin information found."));
+				refreshPluginPanel(gui);
+			}
+		});
+		plugin.add(morePlugins, GBC.std().insets(0,0,10,0));
+
+		JButton update = new JButton(tr("Update current"));
+		update.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				update();
+			}
+
+		});
+		plugin.add(update, GBC.std().insets(0,0,10,0));
+
+		JButton configureSites = new JButton(tr("Configure Plugin Sites"));
+		configureSites.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				configureSites();
+			}
+
+		});
+		plugin.add(configureSites, GBC.std());
+
+		refreshPluginPanel(gui);
+	}
+
+	private void configureSites() {
+		JPanel p = new JPanel(new GridBagLayout());
+		p.add(new JLabel(tr("Add either site-josm.xml or Wiki Pages.")), GBC.eol());
+		final DefaultListModel model = new DefaultListModel();
+		for (String s : PluginDownloader.getSites())
+			model.addElement(s);
+		final JList list = new JList(model);
+		p.add(new JScrollPane(list), GBC.std().fill());
+		JPanel buttons = new JPanel(new GridBagLayout());
+		buttons.add(new JButton(new AbstractAction(tr("Add")){
+			public void actionPerformed(ActionEvent e) {
+				String s = JOptionPane.showInputDialog(gui, tr("Add either site-josm.xml or Wiki Pages."));
+				if (s != null)
+					model.addElement(s);
+            }
+		}), GBC.eol().fill(GBC.HORIZONTAL));
+		buttons.add(new JButton(new AbstractAction(tr("Edit")){
+			public void actionPerformed(ActionEvent e) {
+				if (list.getSelectedValue() == null) {
+					JOptionPane.showMessageDialog(gui, tr("Please select an entry."));
+					return;
+				}
+				String s = JOptionPane.showInputDialog(gui, tr("Add either site-josm.xml or Wiki Pages."), list.getSelectedValue());
+				model.setElementAt(s, list.getSelectedIndex());
+            }
+		}), GBC.eol().fill(GBC.HORIZONTAL));
+		buttons.add(new JButton(new AbstractAction(tr("Delete")){
+			public void actionPerformed(ActionEvent event) {
+				if (list.getSelectedValue() == null) {
+					JOptionPane.showMessageDialog(gui, tr("Please select an entry."));
+					return;
+				}
+				model.removeElement(list.getSelectedValue());
+            }
+		}), GBC.eol().fill(GBC.HORIZONTAL));
+		p.add(buttons, GBC.eol());
+		int answer = JOptionPane.showConfirmDialog(gui, p, tr("Configure Plugin Sites"), JOptionPane.OK_CANCEL_OPTION);
+		if (answer != JOptionPane.OK_OPTION)
+			return;
+		StringBuilder b = new StringBuilder();
+		for (int i = 0; i < model.getSize(); ++i) {
+			b.append(model.getElementAt(i));
+			if (i < model.getSize()-1)
+				b.append(" ");
+		}
+		Main.pref.put("pluginmanager.sites", b.toString());
+	}
+
+	private void update() {
+		Set<PluginDescription> toUpdate = new HashSet<PluginDescription>();
+		StringBuilder toUpdateStr = new StringBuilder();
+		for (PluginProxy proxy : Main.plugins) {
+			PluginDescription description = findDescription(proxy.info.name);
+			if (description != null && (description.version == null || description.version.equals("")) ? (proxy.info.version != null && proxy.info.version.equals("")) : !description.version.equals(proxy.info.version)) {
+				toUpdate.add(description);
+				toUpdateStr.append(description.name+"\n");
+			}
+		}
+		if (toUpdate.isEmpty()) {
+			JOptionPane.showMessageDialog(Main.parent, tr("All installed plugins are up to date."));
+			return;
+		}
+		int answer = JOptionPane.showConfirmDialog(Main.parent, tr("Update the following plugins:\n\n{0}", toUpdateStr.toString()), tr("Update"), JOptionPane.OK_CANCEL_OPTION);
+		if (answer != JOptionPane.OK_OPTION)
+			return;
+		PluginDownloader.update(toUpdate);
+	}
+
+	private PluginDescription findDescription(String name) {
+		for (PluginDescription d : pluginMap.keySet())
+			if (d.name.equals(name))
+				return d;
+		return null;
+	}
+
+	private void refreshPluginPanel(final PreferenceDialog gui) {
+		Collection<PluginDescription> availablePlugins = getAvailablePlugins();
+		pluginMap = new HashMap<PluginDescription, Boolean>();
+		pluginPanel.removeAll();
+		Collection<String> enabledPlugins = Arrays.asList(Main.pref.get("plugins").split(","));
+		for (final PluginDescription plugin : availablePlugins) {
+			boolean enabled = enabledPlugins.contains(plugin.name);
+			final JCheckBox pluginCheck = new JCheckBox(plugin.name+(plugin.version != null && !plugin.version.equals("") ? " Version: "+plugin.version : ""), enabled);
+			pluginPanel.add(pluginCheck);
+
+			pluginCheck.setToolTipText(plugin.resource != null ? plugin.resource : tr("Plugin bundled with JOSM"));
+			JLabel label = new JLabel("<html><i>"+(plugin.description==null?tr("no description available"):plugin.description)+"</i></html>");
+			label.setBorder(BorderFactory.createEmptyBorder(0,20,0,0));
+			label.setMaximumSize(new Dimension(450,1000));
+			pluginPanel.add(label);
+			pluginPanel.add(Box.createVerticalStrut(5));
+
+			pluginMap.put(plugin, enabled);
+			pluginCheck.addActionListener(new ActionListener(){
+				public void actionPerformed(ActionEvent e) {
+					pluginMap.put(plugin, pluginCheck.isSelected());
+				}
+			});
+		}
+		plugin.updateUI();
+	}
+
+	private Collection<PluginDescription> getAvailablePlugins() {
+		SortedMap<String, PluginDescription> availablePlugins = new TreeMap<String, PluginDescription>(new Comparator<String>(){
+			public int compare(String o1, String o2) {
+				return o1.compareToIgnoreCase(o2);
+			}
+		});
+		for (String location : PluginInformation.getPluginLocations()) {
+			File[] pluginFiles = new File(location).listFiles();
+			if (pluginFiles != null) {
+				Arrays.sort(pluginFiles);
+				for (File f : pluginFiles) {
+					if (!f.isFile())
+						continue;
+					if (f.getName().endsWith(".jar")) {
+						try {
+							PluginInformation info = new PluginInformation(f);
+							if (!availablePlugins.containsKey(info.name))
+								availablePlugins.put(info.name, new PluginDescription(info.name, info.description, PluginInformation.getURLString(f.getPath()), info.version));
+						} catch (PluginException x) {
+						}
+					} else if (f.getName().matches("^[0-9]+-site.*\\.xml$")) {
+						try {
+							Uniform<PluginDescription> parser = new Uniform<PluginDescription>(new FileReader(f), "plugin", PluginDescription.class);
+							for (PluginDescription pd : parser)
+								if (!availablePlugins.containsKey(pd.name))
+									availablePlugins.put(pd.name, pd);
+						} catch (Exception e) {
+							e.printStackTrace();
+							JOptionPane.showMessageDialog(Main.parent, tr("Error reading plugin information file: {0}", f.getName()));
+						}
+					}
+				}
+			}
+		}
+		for (PluginProxy proxy : Main.plugins)
+			if (!availablePlugins.containsKey(proxy.info.name))
+				availablePlugins.put(proxy.info.name, new PluginDescription(
+						proxy.info.name, 
+						proxy.info.description, 
+						proxy.info.file == null ? null : PluginInformation.getURLString(proxy.info.file.getPath()),
+								proxy.info.version));
+		return availablePlugins.values();
+	}
+
+	public void ok() {
+		Collection<PluginDescription> toDownload = new LinkedList<PluginDescription>();
+		String msg = "";
+		for (Entry<PluginDescription, Boolean> entry : pluginMap.entrySet()) {
+			if (entry.getValue() && PluginInformation.findPlugin(entry.getKey().name) == null) {
+				toDownload.add(entry.getKey());
+				msg += entry.getKey().name+"\n";
+			}
+		}
+		if (!toDownload.isEmpty()) {
+			int answer = JOptionPane.showConfirmDialog(Main.parent,	
+					tr("Download the following plugins?\n\n{0}", msg), 
+					tr("Download missing plugins"),
+					JOptionPane.YES_NO_OPTION);
+			if (answer != JOptionPane.OK_OPTION)
+				for (PluginDescription pd : toDownload)
+					pluginMap.put(pd, false);
+			else
+				for (PluginDescription pd : toDownload)
+					if (!PluginDownloader.downloadPlugin(pd))
+						pluginMap.put(pd, false);
+
+		}
+
+		String plugins = "";
+		for (Entry<PluginDescription, Boolean> entry : pluginMap.entrySet())
+			if (entry.getValue())
+				plugins += entry.getKey().name + ",";
+		if (plugins.endsWith(","))
+			plugins = plugins.substring(0, plugins.length()-1);
+
+		String oldPlugins = Main.pref.get("plugins");
+		if (!plugins.equals(oldPlugins)) {
+			Main.pref.put("plugins", plugins);
+			gui.requiresRestart = true;
+		}
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/PreferenceDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/PreferenceDialog.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/PreferenceDialog.java	(revision 321)
@@ -0,0 +1,120 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.preferences;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.Font;
+import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+
+import javax.swing.BorderFactory;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JTabbedPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.plugins.PluginProxy;
+import org.openstreetmap.josm.tools.GBC;
+import org.openstreetmap.josm.tools.I18n;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * The preference settings.
+ *
+ * @author imi
+ */
+public class PreferenceDialog extends JTabbedPane {
+
+	public final static Collection<PreferenceSetting> settings = new LinkedList<PreferenceSetting>();
+
+	public boolean requiresRestart = false;
+	public final RequireRestartAction requireRestartAction = new RequireRestartAction();
+
+	// some common tabs
+	public final JPanel display = createPreferenceTab("display", tr("Display Settings"), tr("Various settings that influence the visual representation of the whole program."));
+	public final JPanel connection = createPreferenceTab("connection", I18n.tr("Connection Settings"), I18n.tr("Connection Settings for the OSM server."));
+	public final JPanel map = createPreferenceTab("map", I18n.tr("Map Settings"), I18n.tr("Settings for the map projection and data interpretation."));
+
+	/**
+	 * Construct a JPanel for the preference settings. Layout is GridBagLayout
+	 * and a centered title label and the description are added.
+	 * @param icon The name of the icon.
+	 * @param title The title of this preference tab.
+	 * @param desc A description in one sentence for this tab. Will be displayed
+	 * 		italic under the title.
+	 * @return The created panel ready to add other controls.
+	 */
+	public JPanel createPreferenceTab(String icon, String title, String desc) {
+		JPanel p = new JPanel(new GridBagLayout());
+		p.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
+		p.add(new JLabel(title), GBC.eol().anchor(GBC.CENTER).insets(0,5,0,10));
+
+		JLabel descLabel = new JLabel("<html>"+desc+"</html>");
+		descLabel.setFont(descLabel.getFont().deriveFont(Font.ITALIC));
+		p.add(descLabel, GBC.eol().insets(5,0,5,20).fill(GBC.HORIZONTAL));
+
+		addTab(null, ImageProvider.get("preferences", icon), p);
+		setToolTipTextAt(getTabCount()-1, desc);
+		return p;
+	}
+
+
+
+
+	private final class RequireRestartAction implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			requiresRestart = true;
+		}
+	}
+
+	public void ok() {
+		for (PreferenceSetting setting : settings)
+			setting.ok();
+		if (requiresRestart)
+			JOptionPane.showMessageDialog(Main.parent,tr("You have to restart JOSM for some settings to take effect."));
+		Main.parent.repaint();
+	}
+
+	/**
+	 * If the dialog is closed with Ok, the preferences will be stored to the preferences-
+	 * file, otherwise no change of the file happens.
+	 */
+	public PreferenceDialog() {
+		super(JTabbedPane.LEFT, JTabbedPane.SCROLL_TAB_LAYOUT);
+		for (Iterator<PreferenceSetting> it = settings.iterator(); it.hasNext();) {
+			try {
+	            it.next().addGui(this);
+            } catch (SecurityException e) {
+            	it.remove();
+            }
+		}
+	}
+
+	static {
+		// order is important!
+		settings.add(new LafPreference());
+		settings.add(new DrawingPreference());
+		settings.add(new ColorPreference());
+		settings.add(new ServerAccessPreference());
+		settings.add(new CsvPreference());
+		settings.add(new FilePreferences());
+		settings.add(new ProjectionPreference());
+		settings.add(new TaggingPresetPreference());
+		settings.add(new PluginPreference());
+		settings.add(Main.toolbar);
+
+		for (PluginProxy plugin : Main.plugins) {
+			PreferenceSetting p = plugin.getPreferenceSetting();
+			if (p != null)
+				settings.add(p);
+		}
+
+		// always the last: advanced tab
+		settings.add(new AdvancedPreference());
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/PreferenceSetting.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/PreferenceSetting.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/PreferenceSetting.java	(revision 321)
@@ -0,0 +1,16 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.preferences;
+
+
+public interface PreferenceSetting {
+	/**
+	 * Add the GUI elements to the dialog. The elements should be initialized after
+	 * the current preferences.
+	 */
+	void addGui(PreferenceDialog gui);
+
+	/**
+	 * Called, when OK is pressed to save the setting in the Preferences file.
+	 */
+	void ok();
+}
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/ProjectionPreference.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/ProjectionPreference.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/ProjectionPreference.java	(revision 321)
@@ -0,0 +1,37 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.preferences;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import javax.swing.JComboBox;
+import javax.swing.JLabel;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.projection.Projection;
+import org.openstreetmap.josm.tools.GBC;
+
+public class ProjectionPreference implements PreferenceSetting {
+
+	/**
+	 * Combobox with all projections available
+	 */
+	private JComboBox projectionCombo = new JComboBox(Projection.allProjections);
+
+	public void addGui(PreferenceDialog gui) {
+		for (int i = 0; i < projectionCombo.getItemCount(); ++i) {
+			if (projectionCombo.getItemAt(i).getClass().getName().equals(Main.pref.get("projection"))) {
+				projectionCombo.setSelectedIndex(i);
+				break;
+			}
+		}
+		projectionCombo.addActionListener(gui.requireRestartAction);
+
+		gui.map.add(new JLabel(tr("Projection method")), GBC.std());
+		gui.map.add(GBC.glue(5,0), GBC.std().fill(GBC.HORIZONTAL));
+		gui.map.add(projectionCombo, GBC.eop().fill(GBC.HORIZONTAL).insets(0,0,0,5));
+    }
+
+	public void ok() {
+		Main.pref.put("projection", projectionCombo.getSelectedItem().getClass().getName());
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/ServerAccessPreference.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/ServerAccessPreference.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/ServerAccessPreference.java	(revision 321)
@@ -0,0 +1,61 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.preferences;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.Font;
+
+import javax.swing.JLabel;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.tools.GBC;
+
+public class ServerAccessPreference implements PreferenceSetting {
+
+	/**
+	 * Editfield for the Base url to the REST API from OSM.
+	 */
+	private JTextField osmDataServer = new JTextField(20);
+	/**
+	 * Editfield for the username to the OSM account.
+	 */
+	private JTextField osmDataUsername = new JTextField(20);
+	/**
+	 * Passwordfield for the userpassword of the REST API.
+	 */
+	private JPasswordField osmDataPassword = new JPasswordField(20);
+
+	public void addGui(PreferenceDialog gui) {
+		osmDataServer.setText(Main.pref.get("osm-server.url"));
+		osmDataUsername.setText(Main.pref.get("osm-server.username"));
+		osmDataPassword.setText(Main.pref.get("osm-server.password"));
+
+		osmDataServer.setToolTipText(tr("The base URL for the OSM server (REST API)"));
+		osmDataUsername.setToolTipText(tr("Login name (email) to the OSM account."));
+		osmDataPassword.setToolTipText(tr("Login password to the OSM account. Leave blank to not store any password."));
+
+		gui.connection.add(new JLabel(tr("Base Server URL")), GBC.std());
+		gui.connection.add(osmDataServer, GBC.eol().fill(GBC.HORIZONTAL).insets(5,0,0,5));
+		gui.connection.add(new JLabel(tr("OSM username (email)")), GBC.std());
+		gui.connection.add(osmDataUsername, GBC.eol().fill(GBC.HORIZONTAL).insets(5,0,0,5));
+		gui.connection.add(new JLabel(tr("OSM password")), GBC.std());
+		gui.connection.add(osmDataPassword, GBC.eol().fill(GBC.HORIZONTAL).insets(5,0,0,0));
+		JLabel warning = new JLabel(tr("<html>" +
+				"WARNING: The password is stored in plain text in the preferences file.<br>" +
+				"The password is transfered in plain text to the server, encoded in the url.<br>" +
+		"<b>Do not use a valuable Password.</b></html>"));
+		warning.setFont(warning.getFont().deriveFont(Font.ITALIC));
+		gui.connection.add(warning, GBC.eop().fill(GBC.HORIZONTAL));
+	}
+
+	public void ok() {
+		Main.pref.put("osm-server.url", osmDataServer.getText());
+		Main.pref.put("osm-server.username", osmDataUsername.getText());
+		String pwd = String.valueOf(osmDataPassword.getPassword());
+		if (pwd.equals(""))
+			pwd = null;
+		Main.pref.put("osm-server.password", pwd);
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/TaggingPresetPreference.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/TaggingPresetPreference.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/TaggingPresetPreference.java	(revision 321)
@@ -0,0 +1,106 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.preferences;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.Collection;
+import java.util.StringTokenizer;
+
+import javax.swing.Box;
+import javax.swing.DefaultListModel;
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.tagging.TaggingPreset;
+import org.openstreetmap.josm.tools.GBC;
+
+public class TaggingPresetPreference implements PreferenceSetting {
+
+	public static Collection<TaggingPreset> taggingPresets;
+	private JList taggingPresetSources;
+
+	public void addGui(final PreferenceDialog gui) {
+		taggingPresetSources = new JList(new DefaultListModel());
+		String annos = Main.pref.get("taggingpreset.sources");
+		StringTokenizer st = new StringTokenizer(annos, ";");
+		while (st.hasMoreTokens())
+			((DefaultListModel)taggingPresetSources.getModel()).addElement(st.nextToken());
+
+		JButton addAnno = new JButton(tr("Add"));
+		addAnno.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				String source = JOptionPane.showInputDialog(Main.parent, tr("Tagging preset source"));
+				if (source == null)
+					return;
+				((DefaultListModel)taggingPresetSources.getModel()).addElement(source);
+				gui.requiresRestart = true;
+			}
+		});
+
+		JButton editAnno = new JButton(tr("Edit"));
+		editAnno.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				if (taggingPresetSources.getSelectedIndex() == -1)
+					JOptionPane.showMessageDialog(Main.parent, tr("Please select the row to edit."));
+				else {
+					String source = JOptionPane.showInputDialog(Main.parent, tr("Tagging preset source"), taggingPresetSources.getSelectedValue());
+					if (source == null)
+						return;
+					((DefaultListModel)taggingPresetSources.getModel()).setElementAt(source, taggingPresetSources.getSelectedIndex());
+					gui.requiresRestart = true;
+				}
+			}
+		});
+
+		JButton deleteAnno = new JButton(tr("Delete"));
+		deleteAnno.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				if (taggingPresetSources.getSelectedIndex() == -1)
+					JOptionPane.showMessageDialog(Main.parent, tr("Please select the row to delete."));
+				else {
+					((DefaultListModel)taggingPresetSources.getModel()).remove(taggingPresetSources.getSelectedIndex());
+					gui.requiresRestart = true;
+				}
+			}
+		});
+		taggingPresetSources.setVisibleRowCount(3);
+
+		taggingPresetSources.setToolTipText(tr("The sources (url or filename) of tagging preset definition files. See http://josm.eigenheimstrasse.de/wiki/TaggingPresets for help."));
+		addAnno.setToolTipText(tr("Add a new tagging preset source to the list."));
+		deleteAnno.setToolTipText(tr("Delete the selected source from the list."));
+
+		gui.map.add(new JLabel(tr("Tagging preset sources")), GBC.eol().insets(0,5,0,0));
+		gui.map.add(new JScrollPane(taggingPresetSources), GBC.eol().fill(GBC.BOTH));
+		JPanel buttonPanel = new JPanel(new GridBagLayout());
+		gui.map.add(buttonPanel, GBC.eol().fill(GBC.HORIZONTAL));
+		buttonPanel.add(Box.createHorizontalGlue(), GBC.std().fill(GBC.HORIZONTAL));
+		buttonPanel.add(addAnno, GBC.std().insets(0,5,0,0));
+		buttonPanel.add(editAnno, GBC.std().insets(5,5,5,0));
+		buttonPanel.add(deleteAnno, GBC.std().insets(0,5,0,0));
+	}
+
+	public void ok() {
+		if (taggingPresetSources.getModel().getSize() > 0) {
+			StringBuilder sb = new StringBuilder();
+			for (int i = 0; i < taggingPresetSources.getModel().getSize(); ++i)
+				sb.append(";"+taggingPresetSources.getModel().getElementAt(i));
+			Main.pref.put("taggingpreset.sources", sb.toString().substring(1));
+		} else
+			Main.pref.put("taggingpreset.sources", null);
+	}
+
+	/** 
+	 * Initialize the tagging presets (load and may display error)
+	 */
+	public static void initialize() {
+		taggingPresets = TaggingPreset.readFromPreferences();
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java	(revision 321)
@@ -0,0 +1,271 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.preferences;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.Component;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.GridBagLayout;
+import java.awt.GridLayout;
+import java.awt.LayoutManager;
+import java.awt.Rectangle;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.swing.Action;
+import javax.swing.DefaultListCellRenderer;
+import javax.swing.DefaultListModel;
+import javax.swing.Icon;
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JToolBar;
+import javax.swing.ListCellRenderer;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.tools.GBC;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+public class ToolbarPreferences implements PreferenceSetting {
+
+	private final class Move implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			if (e.getActionCommand().equals("<<")) {
+				while (unselected.size() > 1) {
+					selected.addElement(unselected.get(0));
+					unselected.remove(0);
+				}
+			} else if (e.getActionCommand().equals("<") && unselectedList.getSelectedIndex() != -1) {
+				while (unselectedList.getSelectedIndex() != -1 && unselectedList.getSelectedIndex() != unselected.size()-1) {
+					selected.addElement(unselectedList.getSelectedValue());
+					unselected.remove(unselectedList.getSelectedIndex());
+				}
+				if (unselectedList.getSelectedIndex() == unselected.size()-1)
+					selected.addElement(null);
+			} else if (e.getActionCommand().equals(">") && selectedList.getSelectedIndex() != -1) {
+				while (selectedList.getSelectedIndex() != -1) {
+					if (selectedList.getSelectedValue() != null)
+						unselected.add(unselected.size()-1, selectedList.getSelectedValue());
+					selected.remove(selectedList.getSelectedIndex());
+				}
+			} else if (e.getActionCommand().equals(">>")) {
+				while (selected.size() > 0) {
+					if (selected.get(0) != null)
+						unselected.add(unselected.size()-1, selected.get(0));
+					selected.remove(0);
+				}
+			} else if (e.getActionCommand().equals("up")) {
+				int i = selectedList.getSelectedIndex();
+				Object o = selected.get(i);
+				if (i != 0) {
+					selected.remove(i);
+					selected.add(i-1, o);
+					selectedList.setSelectedIndex(i-1);
+				}
+			} else if (e.getActionCommand().equals("down")) {
+				int i = selectedList.getSelectedIndex();
+				Object o = selected.get(i);
+				if (i != selected.size()-1) {
+					selected.remove(i);
+					selected.add(i+1, o);
+					selectedList.setSelectedIndex(i+1);
+				}
+			}
+		}
+	}
+	private Move moveAction = new Move();
+
+	/**
+	 * Key: Registered name (property "toolbar" of action).
+	 * Value: The action to execute.
+	 */
+	private Map<String, Action> actions = new HashMap<String, Action>();
+
+	private DefaultListModel selected = new DefaultListModel();
+	private DefaultListModel unselected = new DefaultListModel();
+	private JList selectedList = new JList(selected);
+	private JList unselectedList = new JList(unselected);
+
+	public JToolBar control = new JToolBar();
+
+	private JButton upButton;
+	private JButton downButton;
+
+	public ToolbarPreferences() {
+		control.setFloatable(false);
+
+		final ListCellRenderer oldRenderer = selectedList.getCellRenderer();
+		ListCellRenderer renderer = new DefaultListCellRenderer(){
+			@Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
+				String s = tr("Separator");
+				Icon i = ImageProvider.get("preferences/separator");
+				if (value != null) {
+					s = (String)((Action)value).getValue(Action.NAME);
+					i = (Icon)((Action)value).getValue(Action.SMALL_ICON);
+				}
+				JLabel l = (JLabel)oldRenderer.getListCellRendererComponent(list, s, index, isSelected, cellHasFocus);
+				l.setIcon(i);
+				return l;
+			}
+		};
+		selectedList.setCellRenderer(renderer);
+		unselectedList.setCellRenderer(renderer);
+
+		unselectedList.addListSelectionListener(new ListSelectionListener(){
+			public void valueChanged(ListSelectionEvent e) {
+				if ((unselectedList.getSelectedIndex() != -1))
+					selectedList.clearSelection();
+				upButton.setEnabled(selectedList.getSelectedIndex() != -1);
+				downButton.setEnabled(selectedList.getSelectedIndex() != -1);
+			}
+		});
+		selectedList.addListSelectionListener(new ListSelectionListener(){
+			public void valueChanged(ListSelectionEvent e) {
+				boolean sel = selectedList.getSelectedIndex() != -1;
+				if (sel)
+					unselectedList.clearSelection();
+				upButton.setEnabled(sel);
+				downButton.setEnabled(sel);
+			}
+		});
+	}
+
+	public void addGui(PreferenceDialog gui) {
+		selected.removeAllElements();
+		unselected.removeAllElements();
+		for (Action a : actions.values())
+			unselected.addElement(a);
+		unselected.addElement(null);
+
+		final JPanel left = new JPanel(new GridBagLayout());
+		left.add(new JLabel("Toolbar"), GBC.eol());
+		left.add(new JScrollPane(selectedList), GBC.std().fill(GBC.BOTH));
+
+		final JPanel right = new JPanel(new GridBagLayout());
+		right.add(new JLabel("Available"), GBC.eol());
+		right.add(new JScrollPane(unselectedList), GBC.eol().fill(GBC.BOTH));
+
+		final JPanel buttons = new JPanel(new GridLayout(6,1));
+		buttons.add(upButton = createButton("up"));
+		buttons.add(createButton("<<"));
+		buttons.add(createButton("<"));
+		buttons.add(createButton(">"));
+		buttons.add(createButton(">>"));
+		buttons.add(downButton = createButton("down"));
+		upButton.setEnabled(false);
+		downButton.setEnabled(false);
+		
+		final JPanel p = new JPanel();
+		p.setLayout(new LayoutManager(){
+			public void addLayoutComponent(String name, Component comp) {}
+			public void removeLayoutComponent(Component comp) {}
+			public Dimension minimumLayoutSize(Container parent) {
+				Dimension l = left.getMinimumSize();
+				Dimension r = right.getMinimumSize();
+				Dimension b = buttons.getMinimumSize();
+				return new Dimension(l.width+b.width+10+r.width,l.height+b.height+10+r.height);
+			}
+			public Dimension preferredLayoutSize(Container parent) {
+				Dimension l = left.getPreferredSize();
+				Dimension r = right.getPreferredSize();
+				return new Dimension(l.width+r.width+10+buttons.getPreferredSize().width,Math.max(l.height, r.height));
+			}
+			public void layoutContainer(Container parent) {
+				Dimension d = p.getSize();
+				Dimension b = buttons.getPreferredSize();
+				int width = d.width/2-10-b.width;
+				left.setBounds(new Rectangle(0,0,width,d.height));
+				right.setBounds(new Rectangle(width+10+b.width,0,width,d.height));
+				buttons.setBounds(new Rectangle(width+5, d.height/2-b.height/2, b.width, b.height));
+			}
+		});
+		p.add(left);
+		p.add(buttons);
+		p.add(right);
+
+		JPanel panel = gui.createPreferenceTab("toolbar", "Toolbar customization", "Customize the elements on the toolbar.");
+		panel.add(p, GBC.eol().fill(GBC.BOTH));
+
+		for (String s : getToolString()) {
+			if (s.equals("|"))
+				selected.addElement(null);
+			else {
+				Action a = actions.get(s);
+				if (a != null) {
+					selected.addElement(a);
+					unselected.removeElement(a);
+				}
+			}
+		}
+	}
+
+	private String[] getToolString() {
+		String s = Main.pref.get("toolbar", "download;upload;|;new;open;save;exportgpx;|;undo;redo;|;preference");
+		if (s == null || s.equals("null") || s.equals(""))
+			return new String[0];
+		return s.split(";");
+	}
+
+	private JButton createButton(String name) {
+		JButton b = new JButton();
+		if (name.equals("up"))
+			b.setIcon(ImageProvider.get("dialogs", "up"));
+		else if (name.equals("down"))
+			b.setIcon(ImageProvider.get("dialogs", "down"));
+		else
+			b.setText(name);
+		b.addActionListener(moveAction);
+		b.setActionCommand(name);
+		return b;
+	}
+
+	public void ok() {
+		StringBuilder b = new StringBuilder();
+		for (int i = 0; i < selected.size(); ++i) {
+			if (selected.get(i) == null)
+				b.append("|");
+			else
+				b.append(((Action)selected.get(i)).getValue("toolbar"));
+			b.append(";");
+		}
+		String s = b.toString();
+		if (s.length() > 0)
+			s = s.substring(0, s.length()-1);
+		else
+			s = "null";
+		Main.pref.put("toolbar", s);
+		refreshToolbarControl();
+	}
+
+	/**
+	 * @return The parameter (for better chaining)
+	 */
+	public Action register(Action action) {
+		actions.put((String)action.getValue("toolbar"), action);
+		return action;
+	}
+
+	/**
+	 * Parse the toolbar preference setting and construct the toolbar GUI control.
+	 * 
+	 * Call this, if anything has changed in the toolbar settings and you want to refresh 
+	 * the toolbar content (e.g. after registering actions in a plugin)
+	 */
+	public void refreshToolbarControl() {
+		control.removeAll();
+		for (String s : getToolString()) {
+			if (s.equals("|"))
+				control.addSeparator();
+			else
+				control.add(actions.get(s));
+		}
+		control.setVisible(control.getComponentCount() != 0);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/tagging/ForwardActionListener.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/tagging/ForwardActionListener.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/tagging/ForwardActionListener.java	(revision 321)
@@ -0,0 +1,29 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.tagging;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import org.openstreetmap.josm.gui.dialogs.PropertiesDialog;
+
+/**
+ * Just an ActionListener that forwards calls to actionPerformed to some other
+ * listener doing some refresh stuff on the way.
+ * @author imi
+ */
+public final class ForwardActionListener implements ActionListener {
+	public final TaggingPreset preset;
+
+	private final PropertiesDialog propertiesDialog;
+
+	public ForwardActionListener(PropertiesDialog propertiesDialog, TaggingPreset preset) {
+		this.propertiesDialog = propertiesDialog;
+		this.preset = preset;
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		this.propertiesDialog.taggingPresets.setSelectedIndex(0);
+		e.setSource(this);
+		preset.actionPerformed(e);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/tagging/TaggingCellRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/tagging/TaggingCellRenderer.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/tagging/TaggingCellRenderer.java	(revision 321)
@@ -0,0 +1,46 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.tagging;
+
+import java.awt.Component;
+import java.awt.Image;
+
+import javax.swing.Action;
+import javax.swing.DefaultListCellRenderer;
+import javax.swing.ImageIcon;
+import javax.swing.JComponent;
+import javax.swing.JLabel;
+import javax.swing.JList;
+
+import org.openstreetmap.josm.tools.ImageProvider;
+
+final public class TaggingCellRenderer extends DefaultListCellRenderer {
+	@Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
+		TaggingPreset a = null;
+		if (value instanceof ForwardActionListener)
+			a = ((ForwardActionListener)value).preset;
+		else if (value instanceof TaggingPreset)
+			a = (TaggingPreset)value;
+		String name = a == null ? null : (String)a.getValue(Action.NAME);
+		if (name == null)
+			return super.getListCellRendererComponent(list, "", index, false, false);
+		JComponent c = (JComponent)super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
+		JLabel l = new JLabel(name);
+		l.setForeground(c.getForeground());
+		l.setBackground(c.getBackground());
+		l.setFont(c.getFont());
+		l.setBorder(c.getBorder());
+		ImageIcon icon = (ImageIcon)a.getValue(Action.SMALL_ICON);
+		if (icon != null)
+			l.setIcon(new ImageIcon(icon.getImage().getScaledInstance(16, 16, Image.SCALE_SMOOTH)));
+		else {
+			if (a.types == null)
+				l.setIcon(ImageProvider.get("data", "empty"));
+			else if (a.types.size() != 1)
+				l.setIcon(ImageProvider.get("data", "object"));
+			else
+				l.setIcon(ImageProvider.get("data", a.types.iterator().next().getSimpleName().toLowerCase()));
+		}
+		l.setOpaque(true);
+		return l;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java	(revision 321)
@@ -0,0 +1,310 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.tagging;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
+
+import java.awt.GridBagLayout;
+import java.awt.Image;
+import java.awt.event.ActionEvent;
+import java.io.BufferedReader;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.UnsupportedEncodingException;
+import java.net.URL;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.StringTokenizer;
+
+import javax.swing.AbstractAction;
+import javax.swing.Action;
+import javax.swing.ImageIcon;
+import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.command.ChangePropertyCommand;
+import org.openstreetmap.josm.command.Command;
+import org.openstreetmap.josm.command.SequenceCommand;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.tools.GBC;
+import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.XmlObjectParser;
+import org.xml.sax.SAXException;
+
+
+/**
+ * This class read encapsulate one tagging preset. A class method can
+ * read in all predefined presets, either shipped with JOSM or that are
+ * in the config directory.
+ * 
+ * It is also able to construct dialogs out of preset definitions.
+ */
+public class TaggingPreset extends AbstractAction {
+
+	public static abstract class Item {
+		public boolean focus = false;
+		abstract void addToPanel(JPanel p);
+		abstract void addCommands(Collection<OsmPrimitive> sel, List<Command> cmds);
+		boolean requestFocusInWindow() {return false;}
+	}
+
+	public static class Text extends Item {
+		public String key;
+		public String text;
+		public String default_;
+		public boolean delete_if_empty = false;
+
+		private JTextField value = new JTextField();
+
+		@Override public void addToPanel(JPanel p) {
+			value.setText(default_ == null ? "" : default_);
+			p.add(new JLabel(text), GBC.std().insets(0,0,10,0));
+			p.add(value, GBC.eol().fill(GBC.HORIZONTAL));
+		}
+		@Override public void addCommands(Collection<OsmPrimitive> sel, List<Command> cmds) {
+			String v = value.getText();
+			if (delete_if_empty && v.length() == 0)
+				v = null;
+			cmds.add(new ChangePropertyCommand(sel, key, v));
+		}
+		@Override boolean requestFocusInWindow() {return value.requestFocusInWindow();}
+	}
+
+	public static class Check extends Item {
+		public String key;
+		public String text;
+		public boolean default_ = false;
+
+		private JCheckBox check = new JCheckBox();
+
+		@Override public void addToPanel(JPanel p) {
+			check.setSelected(default_);
+			check.setText(text);
+			p.add(check, GBC.eol().fill(GBC.HORIZONTAL));
+		}
+		@Override public void addCommands(Collection<OsmPrimitive> sel, List<Command> cmds) {
+			cmds.add(new ChangePropertyCommand(sel, key, check.isSelected() ? "true" : null));
+		}
+		@Override boolean requestFocusInWindow() {return check.requestFocusInWindow();}
+	}
+
+	public static class Combo extends Item {
+		public String key;
+		public String text;
+		public String values;
+		public String display_values;
+		public String default_;
+		public boolean delete_if_empty = false;
+		public boolean editable = true;
+
+		private JComboBox combo;
+
+		@Override public void addToPanel(JPanel p) {
+			combo = new JComboBox((display_values != null ? display_values : values).split(","));
+			combo.setEditable(editable);
+			combo.setSelectedItem(default_);
+			p.add(new JLabel(text), GBC.std().insets(0,0,10,0));
+			p.add(combo, GBC.eol().fill(GBC.HORIZONTAL));
+		}
+		@Override public void addCommands(Collection<OsmPrimitive> sel, List<Command> cmds) {
+			String v = combo.getSelectedIndex() == -1 ? null : values.split(",")[combo.getSelectedIndex()];
+			String str = combo.isEditable()?combo.getEditor().getItem().toString() : v;
+			if (delete_if_empty && str != null && str.length() == 0)
+				str = null;
+			cmds.add(new ChangePropertyCommand(sel, key, str));
+		}
+		@Override boolean requestFocusInWindow() {return combo.requestFocusInWindow();}
+	}
+
+	public static class Label extends Item {
+		public String text;
+
+		@Override public void addToPanel(JPanel p) {
+			p.add(new JLabel(text), GBC.eol());
+		}
+		@Override public void addCommands(Collection<OsmPrimitive> sel, List<Command> cmds) {}
+	}
+
+	public static class Key extends Item {
+		public String key;
+		public String value;
+
+		@Override public void addToPanel(JPanel p) {}
+		@Override public void addCommands(Collection<OsmPrimitive> sel, List<Command> cmds) {
+			cmds.add(new ChangePropertyCommand(sel, key, value != null && !value.equals("") ? value : null));
+		}
+	}
+
+	/**
+	 * The types as preparsed collection.
+	 */
+	public Collection<Class<?>> types;
+	private List<Item> data = new LinkedList<Item>();
+
+	/**
+	 * Create an empty tagging preset. This will not have any items and
+	 * will be an empty string as text. createPanel will return null.
+	 * Use this as default item for "do not select anything".
+	 */
+	public TaggingPreset() {}
+
+	/**
+	 * Called from the XML parser to set the name of the tagging preset
+	 */
+	public void setName(String name) {
+		putValue(Action.NAME, name);
+		putValue("toolbar", "tagging_"+name);
+	}
+
+	/**
+	 * Called from the XML parser to set the icon
+	 */
+	public void setIcon(String iconName) {
+		ImageIcon icon = ImageProvider.getIfAvailable(null, iconName);
+		if (icon == null)
+			icon = new ImageIcon(iconName);
+		if (Math.max(icon.getIconHeight(), icon.getIconWidth()) != 24)
+			icon = new ImageIcon(icon.getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH));
+		putValue(Action.SMALL_ICON, icon);
+	}
+
+	/**
+	 * Called from the XML parser to set the types, this preset affects
+	 */
+	public void setType(String types) throws SAXException {
+		try {
+			for (String type : types.split(",")) {
+				type = Character.toUpperCase(type.charAt(0))+type.substring(1);
+				if (this.types == null)
+					this.types = new LinkedList<Class<?>>();
+				this.types.add(Class.forName("org.openstreetmap.josm.data.osm."+type));
+			}
+		} catch (ClassNotFoundException e) {
+			e.printStackTrace();
+			throw new SAXException(tr("Unknown type"));
+		}
+	}
+
+	public static List<TaggingPreset> readAll(InputStream inStream) throws SAXException {
+		BufferedReader in = null;
+		try {
+			in = new BufferedReader(new InputStreamReader(inStream, "UTF-8"));
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+			in = new BufferedReader(new InputStreamReader(inStream));
+		}
+		XmlObjectParser parser = new XmlObjectParser();
+		parser.mapOnStart("item", TaggingPreset.class);
+		parser.map("text", Text.class);
+		parser.map("check", Check.class);
+		parser.map("combo", Combo.class);
+		parser.map("label", Label.class);
+		parser.map("key", Key.class);
+		LinkedList<TaggingPreset> all = new LinkedList<TaggingPreset>();
+		parser.start(in);
+		while(parser.hasNext()) {
+			Object o = parser.next();
+			if (o instanceof TaggingPreset) {
+				all.add((TaggingPreset)o);
+				Main.toolbar.register((TaggingPreset)o);
+			} else
+				all.getLast().data.add((Item)o);
+		}
+		return all;
+	}
+
+	public static Collection<TaggingPreset> readFromPreferences() {
+		LinkedList<TaggingPreset> allPresets = new LinkedList<TaggingPreset>();
+		String allTaggingPresets = Main.pref.get("taggingpreset.sources");
+		StringTokenizer st = new StringTokenizer(allTaggingPresets, ";");
+		while (st.hasMoreTokens()) {
+			InputStream in = null;
+			String source = st.nextToken();
+			try {
+				if (source.startsWith("http") || source.startsWith("ftp") || source.startsWith("file"))
+					in = new URL(source).openStream();
+				else if (source.startsWith("resource://"))
+					in = Main.class.getResourceAsStream(source.substring("resource:/".length()));
+				else
+					in = new FileInputStream(source);
+				allPresets.addAll(TaggingPreset.readAll(in));
+				in.close();
+			} catch (IOException e) {
+				e.printStackTrace();
+				JOptionPane.showMessageDialog(Main.parent, tr("Could not read tagging preset source: {0}",source));
+			} catch (SAXException e) {
+				e.printStackTrace();
+				JOptionPane.showMessageDialog(Main.parent, tr("Error parsing {0}: ", source)+e.getMessage());
+			}
+		}
+		return allPresets;
+	}
+
+
+	public JPanel createPanel() {
+		if (data == null)
+			return null;
+		JPanel p = new JPanel(new GridBagLayout());
+		for (Item i : data)
+			i.addToPanel(p);
+		return p;
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		Collection<OsmPrimitive> sel = Main.ds.getSelected();
+		JPanel p = createPanel();
+		if (p == null)
+			return;
+		int answer = JOptionPane.OK_OPTION;
+		if (p.getComponentCount() != 0) {
+			final JOptionPane optionPane = new JOptionPane(p, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION){
+				@Override public void selectInitialValue() {
+					for (Item i : data) {
+						if (i.focus) {
+							i.requestFocusInWindow();
+							return;
+						}
+					}
+				}
+			};
+			optionPane.createDialog(Main.parent, trn("Change {0} object", "Change {0} objects", sel.size(), sel.size())).setVisible(true);
+			Object answerObj = optionPane.getValue();
+			if (answerObj == null || answerObj == JOptionPane.UNINITIALIZED_VALUE ||
+					(answerObj instanceof Integer && (Integer)answerObj != JOptionPane.OK_OPTION))
+				answer = JOptionPane.CANCEL_OPTION;
+		}
+		if (answer == JOptionPane.OK_OPTION) {
+			Command cmd = createCommand(Main.ds.getSelected());
+			if (cmd != null)
+				Main.main.undoRedo.add(cmd);
+		}
+		Main.ds.setSelected(Main.ds.getSelected()); // force update
+	}
+
+	private Command createCommand(Collection<OsmPrimitive> participants) {
+		Collection<OsmPrimitive> sel = new LinkedList<OsmPrimitive>();
+		for (OsmPrimitive osm : participants)
+			if (types == null || types.contains(osm.getClass()))
+				sel.add(osm);
+		if (sel.isEmpty())
+			return null;
+
+		List<Command> cmds = new LinkedList<Command>();
+		for (Item i : data)
+			i.addCommands(sel, cmds);
+		if (cmds.size() == 0)
+			return null;
+		else if (cmds.size() == 1)
+			return cmds.get(0);
+		else
+			return new SequenceCommand(tr("Change Properties"), cmds);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java	(revision 321)
@@ -0,0 +1,126 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.io;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Collection;
+import java.util.LinkedList;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.Bounds;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.DataSource;
+import org.openstreetmap.josm.gui.layer.RawGpsLayer.GpsPoint;
+import org.xml.sax.SAXException;
+
+
+public class BoundingBoxDownloader extends OsmServerReader {
+
+	/**
+     * The boundings of the desired map data.
+     */
+    private final double lat1;
+	private final double lon1;
+	private final double lat2;
+	private final double lon2;
+
+	public BoundingBoxDownloader(double lat1, double lon1, double lat2, double lon2) {
+		this.lat1 = lat1;
+		this.lon1 = lon1;
+		this.lat2 = lat2;
+		this.lon2 = lon2;
+    }
+
+	/**
+     * Retrieve raw gps waypoints from the server API.
+     * @return A list of all primitives retrieved. Currently, the list of lists
+     * 		contain only one list, since the server cannot distinguish between
+     * 		ways.
+     */
+    public Collection<Collection<GpsPoint>> parseRawGps() throws IOException, SAXException {
+		Main.pleaseWaitDlg.currentAction.setText(tr("Contacting OSM Server..."));
+    	try {
+    		String url = "trackpoints?bbox="+lon1+","+lat1+","+lon2+","+lat2+"&page=";
+    		Collection<Collection<GpsPoint>> data = new LinkedList<Collection<GpsPoint>>();
+    		Collection<GpsPoint> list = new LinkedList<GpsPoint>();
+
+    		for (int i = 0;;++i) {
+    			Main.pleaseWaitDlg.currentAction.setText(tr("Downloading points {0} to {1}...", i * 5000, ((i + 1) * 5000)));
+    			InputStream in = getInputStream(url+i, Main.pleaseWaitDlg);
+    			if (in == null)
+    				break;
+    			// Use only track points, since the server mix everything together 
+    			Collection<Collection<GpsPoint>> allWays = new RawGpsReader(in, null).trackData;
+
+    			boolean foundSomething = false;
+    			for (Collection<GpsPoint> t : allWays) {
+    				if (!t.isEmpty()) {
+    					foundSomething = true;
+    					list.addAll(t);
+    				}
+    			}
+    			if (!foundSomething)
+    				break;
+    			in.close();
+    			activeConnection = null;
+    		}
+    		if (!list.isEmpty())
+    			data.add(list);
+    		return data;
+    	} catch (IllegalArgumentException e) {
+    		// caused by HttpUrlConnection in case of illegal stuff in the response
+    		if (cancel)
+    			return null;
+    		throw new SAXException("Illegal characters within the HTTP-header response", e);
+    	} catch (IOException e) {
+    		if (cancel)
+    			return null;
+    		throw e;
+    	} catch (SAXException e) {
+    		throw e;
+    	} catch (Exception e) {
+    		if (cancel)
+    			return null;
+    		if (e instanceof RuntimeException)
+    			throw (RuntimeException)e;
+    		throw new RuntimeException(e);
+    	}
+    }
+
+	/**
+     * Read the data from the osm server address.
+     * @return A data set containing all data retrieved from that url
+     */
+    public DataSet parseOsm() throws SAXException, IOException {
+    	try {
+    		Main.pleaseWaitDlg.currentAction.setText(tr("Contacting OSM Server..."));
+    		final InputStream in = getInputStream("map?bbox="+lon1+","+lat1+","+lon2+","+lat2, Main.pleaseWaitDlg);
+    		if (in == null)
+    			return null;
+    		Main.pleaseWaitDlg.currentAction.setText(tr("Downloading OSM data..."));
+    		final DataSet data = OsmReader.parseDataSet(in, null, Main.pleaseWaitDlg);
+    		String origin = Main.pref.get("osm-server.url")+"/"+Main.pref.get("osm-server.version", "0.4");
+    		Bounds bounds = new Bounds(new LatLon(lat1, lon1), new LatLon(lat2, lon2));
+			DataSource src = new DataSource(bounds, origin);
+    		data.dataSources.add(src);
+    		in.close();
+    		activeConnection = null;
+    		return data;
+    	} catch (IOException e) {
+    		if (cancel)
+    			return null;
+    		throw e;
+    	} catch (SAXException e) {
+    		throw e;
+    	} catch (Exception e) {
+    		if (cancel)
+    			return null;
+    		if (e instanceof RuntimeException)
+    			throw (RuntimeException)e;
+    		throw new RuntimeException(e);
+    	}
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/io/GpxWriter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/GpxWriter.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/io/GpxWriter.java	(revision 321)
@@ -0,0 +1,254 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.io;
+
+import java.io.PrintWriter;
+import java.util.Collection;
+import java.util.LinkedList;
+
+import org.openstreetmap.josm.data.Bounds;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.layer.RawGpsLayer.GpsPoint;
+
+/**
+ * Exports a dataset to GPX data. All information available are tried to store in
+ * the gpx. If no corresponding tag is available in GPX, use 
+ * <code>&lt;extensions&gt;</code> instead.
+ * 
+ * GPX-Way segments are stored as 2-node-pairs, so no &lt;trkseg&gt; with more
+ * or less than 2 &lt;trkpt&gt; are exported.
+ * 
+ * @author imi
+ */
+public class GpxWriter extends XmlWriter {
+
+	public GpxWriter(PrintWriter out) {
+		super(out);
+	}
+
+	/**
+	 * Export the dataset to gpx. Only the physical segment structure is
+	 * exported. To do this, the list of ways is processed. If a way span a 
+	 * sequence of segments, this is added as one trkseg.
+	 * Then, all remaining segments are added in one extra trk. Finally,
+	 * all remaining nodes are added as wpt.
+	 */
+	public static final class All implements XmlWriter.OsmWriterInterface {
+		private final DataSet data;
+		private final String name;
+		private final String desc;
+		private final String author;
+		private final String email;
+		private final String copyright;
+		private final String year;
+		private final String keywords;
+		private boolean metadataClosed = false;
+
+		public All(DataSet data, String name, String desc, String author, String email, String copyright, String year, String keywords) {
+			this.data = data;
+			this.name = name;
+			this.desc = desc;
+			this.author = author;
+			this.email = email;
+			this.copyright = copyright;
+			this.year = year;
+			this.keywords = keywords;
+		}
+
+		public void header(PrintWriter out) {
+			out.println("<gpx version='1.1' creator='JOSM' xmlns='http://www.topografix.com/GPX/1/1'>");
+			out.println("  <metadata>");
+			if (!name.equals(""))
+				out.println("    <name>"+XmlWriter.encode(name)+"</name>");
+			if (!desc.equals(""))
+				out.println("    <desc>"+XmlWriter.encode(desc)+"</desc>");
+			if (!author.equals("")) {
+				out.println("    <author>");
+				out.println("      <name>"+XmlWriter.encode(author)+"</name>");
+				if (!email.equals(""))
+					out.println("      <email>"+XmlWriter.encode(email)+"</email>");
+				out.println("    </author>");
+				if (!copyright.equals("")) {
+					out.println("    <copyright author='"+XmlWriter.encode(author)+"'>");
+					if (!year.equals(""))
+						out.println("      <year>"+XmlWriter.encode(year)+"</year>");
+					out.println("      <license>"+XmlWriter.encode(copyright)+"</license>");
+					out.println("    </copyright>");
+				}
+			}
+			if (!keywords.equals("")) {
+				out.println("    <keywords>"+XmlWriter.encode(keywords)+"</keywords>");
+			}
+			// don't finish here, to give output functions the chance to add <bounds>
+		}
+
+		public void write(PrintWriter out) {
+			Collection<OsmPrimitive> all = data.allNonDeletedPrimitives();
+			if (all.isEmpty())
+				return;
+			GpxWriter writer = new GpxWriter(out);
+			// calculate bounds
+			Bounds b = new Bounds(new LatLon(Double.MAX_VALUE, Double.MAX_VALUE), new LatLon(-Double.MAX_VALUE, -Double.MAX_VALUE));
+			for (Node n : data.nodes)
+				if (!n.deleted)
+					b.extend(n.coor);
+			out.println("    <bounds minlat='"+b.min.lat()+"' minlon='"+b.min.lon()+"' maxlat='"+b.max.lat()+"' maxlon='"+b.max.lon()+"' />");
+			out.println("  </metadata>");
+			metadataClosed = true;
+
+			// add ways
+			for (Way w : data.ways) {
+				if (w.deleted)
+					continue;
+				out.println("  <trk>");
+				Segment oldLs = null;
+				for (Segment ls : w.segments) {
+					if (ls.incomplete)
+						continue;
+					// end old segemnt, if no longer match a chain
+					if (oldLs != null && !oldLs.to.coor.equals(ls.from.coor)) {
+						out.println("    </trkseg>");
+						writer.outputNode(oldLs.to, false);
+						all.remove(oldLs.to);
+						oldLs = null;
+					}
+					// start new segment if necessary
+					if (oldLs == null)
+						out.println("    <trkseg>");
+					writer.outputNode(ls.from, false);
+					all.remove(ls.from);
+					oldLs = ls;
+					all.remove(ls);
+				}
+				// write last node if there
+				if (oldLs != null) {
+					writer.outputNode(oldLs.to, false);
+					all.remove(oldLs.to);
+					out.println("    </trkseg>");
+				}
+				out.println("  </trk>");
+				all.remove(w);
+			}
+
+			// add remaining segments
+			Collection<Segment> segments = new LinkedList<Segment>();
+			for (OsmPrimitive osm : all)
+				if (osm instanceof Segment && !((Segment)osm).incomplete)
+					segments.add((Segment)osm);
+			if (!segments.isEmpty()) {
+				out.println("  <trk>");
+				for (Segment ls : segments) {
+					out.println("    <trkseg>");
+					writer.outputNode(ls.from, false);
+					all.remove(ls.from);
+					writer.outputNode(ls.to, false);
+					all.remove(ls.to);
+					out.println("    </trkseg>");
+					all.remove(ls);
+				}
+				out.println("  </trk>");
+			}
+
+			// finally add the remaining nodes
+			for (OsmPrimitive osm : all)
+				if (osm instanceof Node)
+					writer.outputNode((Node)osm, true);
+		}
+
+		public void footer(PrintWriter out) {
+			if (!metadataClosed)
+				out.println("  </metadata>");
+			out.println("</gpx>");
+		}
+	}
+
+
+	/**
+	 * Export the collection structure to gpx. The gpx will consists of only one
+	 * trk with as many trkseg as there are collections in the outer collection.
+	 */
+	public static final class Trk implements XmlWriter.OsmWriterInterface {
+		private final Collection<Collection<GpsPoint>> data;
+		public Trk(Collection<Collection<GpsPoint>> data) {
+			this.data = data;
+		}
+
+		public void header(PrintWriter out) {
+			out.println("<gpx version='1.1' creator='JOSM' xmlns='http://www.topografix.com/GPX/1/1'>");
+		}
+
+		public void write(PrintWriter out) {
+			if (data.size() == 0)
+				return;
+			// calculate bounds
+			Bounds b = new Bounds(new LatLon(Double.MAX_VALUE, Double.MAX_VALUE), new LatLon(Double.MIN_VALUE, Double.MIN_VALUE));
+			for (Collection<GpsPoint> c : data)
+				for (GpsPoint p : c)
+					b.extend(p.latlon);
+			out.println("  <metadata>");
+			out.println("    <bounds minlat='"+b.min.lat()+"' minlon='"+b.min.lon()+"' maxlat='"+b.max.lat()+"' maxlon='"+b.max.lon()+"' />");
+			out.println("  </metadata>");
+
+			out.println("  <trk>");
+			for (Collection<GpsPoint> c : data) {
+				out.println("    <trkseg>");
+				LatLon last = null;
+				for (GpsPoint p : c) {
+					// skip double entries
+					if (p.latlon.equals(last))
+						continue;
+					last =  p.latlon;
+					LatLon ll = p.latlon;
+					out.print("      <trkpt lat='"+ll.lat()+"' lon='"+ll.lon()+"'");
+					if (p.time != null && p.time.length()!=0) {
+						out.println(">");
+						out.println("        <time>"+p.time+"</time>");
+						out.println("      </trkpt>");
+					} else
+						out.println(" />");
+				}
+				out.println("    </trkseg>");
+			}
+			out.println("  </trk>");
+		}
+
+		public void footer(PrintWriter out) {
+			out.println("</gpx>");
+        }
+	}
+
+	private void outputNode(Node n, boolean wpt) {
+		out.print((wpt?"  <wpt":"      <trkpt")+" lat='"+n.coor.lat()+"' lon='"+n.coor.lon()+"'");
+		if (n.keys == null) {
+			out.println(" />");
+			return;
+		}
+		boolean found = false;
+		String[] possibleKeys = {"ele", "time", "magvar", "geoidheight", "name",
+				"cmt", "desc", "src", "link", "sym", "type", "fix", "sat",
+				"hdop", "vdop", "pdop", "ageofgpsdata", "dgpsid"};
+		Collection<String> keys = n.keySet();
+		for (String k : possibleKeys) {
+			if (keys.contains(k)) {
+				if (!found) {
+					found = true;
+					out.println(">");
+				}
+				if (k.equals("link")) {
+					out.println("        <link>");
+					out.println("          <text>"+XmlWriter.encode(n.get(k))+"</text>");
+					out.println("        </link>");
+				} else
+					out.println("        <"+k+">"+XmlWriter.encode(n.get(k))+"</"+k+">");
+			}
+		}
+		if (found)
+			out.println(wpt?"  </wpt>":"      </trkpt>");
+		else
+			out.println(" />");
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/io/IncompleteDownloader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/IncompleteDownloader.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/io/IncompleteDownloader.java	(revision 321)
@@ -0,0 +1,175 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.io;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.Collection;
+
+import javax.swing.JOptionPane;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.command.ChangeCommand;
+import org.openstreetmap.josm.command.Command;
+import org.openstreetmap.josm.command.SequenceCommand;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.osm.visitor.MergeVisitor;
+import org.xml.sax.Attributes;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+/**
+ * Capable of downloading ways without having to fully parse their segments.
+ *
+ * @author Imi
+ */
+public class IncompleteDownloader extends OsmServerReader {
+
+	/**
+	 * The new downloaded data will be inserted here.
+	 */
+	public final DataSet data = new DataSet();
+
+	/**
+	 * The list of incomplete Ways to download. The ways will be filled and are complete after download.
+	 */
+	private final Collection<Way> toDownload;
+	private MergeVisitor merger = new MergeVisitor(data, null);
+
+	public IncompleteDownloader(Collection<Way> toDownload) {
+		this.toDownload = toDownload;
+	}
+
+	public void parse() throws SAXException, IOException {
+		Main.pleaseWaitDlg.currentAction.setText(tr("Downloading incomplete ways..."));
+		Main.pleaseWaitDlg.progress.setMaximum(toDownload.size());
+		Main.pleaseWaitDlg.progress.setValue(0);
+		ArrayList<Command> cmds = new ArrayList<Command>();
+		int i = 0;
+		try {
+			for (Way w : toDownload) {
+				// if some of the way's segments fail to download and the user
+				// decides to delete them, the download method will return an
+				// "edit way" command.
+				Command cmd = download(w); 
+				if (cmd != null)
+					cmds.add(cmd);
+				Main.pleaseWaitDlg.progress.setValue(++i);
+			}
+		} catch (IOException e) {
+			if (!cancel)
+				throw e;
+		} catch (SAXException e) {
+			throw e;
+		} catch (Exception e) {
+			if (!cancel)
+				throw (e instanceof RuntimeException) ? (RuntimeException)e : new RuntimeException(e);
+		}
+		if (cmds.size() > 0)
+			Main.main.undoRedo.add(new SequenceCommand(tr("Fix data errors"), cmds));
+	}
+
+	private static class SegmentParser extends DefaultHandler {
+		public long from, to;
+		@Override public void startElement(String ns, String lname, String qname, Attributes a) {
+			if (qname.equals("segment")) {
+				from = Long.parseLong(a.getValue("from"));
+				to = Long.parseLong(a.getValue("to"));
+			}
+		}
+	}
+
+	/**
+	 * Downloads all missing segments from the given way. If segments fail do download, 
+	 * offers the user a chance to delete those segments from the way.
+	 * 
+	 * @param w way to complete
+	 * @return an "edit way" command if the user decided to delete segments
+	 * @throws IOException
+	 * @throws SAXException
+	 */
+	private Command download(Way w) throws IOException, SAXException {
+		// get all the segments
+		Way newway = null;
+		for (Segment s : w.segments) {
+			if (!s.incomplete)
+				continue;
+			BufferedReader segReader;
+			try {
+				segReader = new BufferedReader(new InputStreamReader(getInputStream("segment/"+s.id, null), "UTF-8"));
+			} catch (FileNotFoundException e) {
+				Object[] options = {"Delete", "Ignore", "Abort"};
+				int n = JOptionPane.showOptionDialog(Main.parent,
+						tr("Segment {0} is deleted but part of Way {1}",s.id, w.id),
+						tr("Data error"),
+						JOptionPane.YES_NO_CANCEL_OPTION,
+						JOptionPane.ERROR_MESSAGE,
+						null, options, options[2]);
+				if (n == 0)
+				{
+					if( newway == null )
+						newway = new Way(w);
+					newway.segments.remove(s);
+				}
+				else if (n == 2)
+				{
+					e.printStackTrace();
+					throw new IOException(tr("Data error: Segment {0} is deleted but part of Way {1}", s.id, w.id));
+				}
+				continue;
+			}
+			StringBuilder segBuilder = new StringBuilder();
+			for (String line = segReader.readLine(); line != null; line = segReader.readLine())
+				segBuilder.append(line+"\n");
+			SegmentParser segmentParser = new SegmentParser();
+			try {
+		        SAXParserFactory.newInstance().newSAXParser().parse(new InputSource(new StringReader(segBuilder.toString())), segmentParser);
+	        } catch (ParserConfigurationException e1) {
+	        	e1.printStackTrace(); // broken SAXException chaining
+	        	throw new SAXException(e1);
+	        }
+			if (segmentParser.from == 0 || segmentParser.to == 0)
+				throw new SAXException("Invalid segment response.");
+			if (!hasNode(segmentParser.from))
+				readNode(segmentParser.from, s.id).visit(merger);
+			if (!hasNode(segmentParser.to))
+				readNode(segmentParser.to, s.id).visit(merger);
+			readSegment(segBuilder.toString()).visit(merger);
+		}
+		if( newway != null )
+			return new ChangeCommand(w, newway);
+		return null;
+	}
+
+	private boolean hasNode(long id) {
+	    for (Node n : Main.ds.nodes)
+	    	if (n.id == id)
+	    		return true;
+	    return false;
+    }
+
+	private Segment readSegment(String seg) throws SAXException, IOException {
+        return OsmReader.parseDataSet(new ByteArrayInputStream(seg.getBytes("UTF-8")), data, null).segments.iterator().next();
+    }
+
+	private Node readNode(long id, long segId) throws SAXException, IOException {
+		try {
+	        return OsmReader.parseDataSet(getInputStream("node/"+id, null), data, null).nodes.iterator().next();
+        } catch (FileNotFoundException e) {
+	        e.printStackTrace();
+	        throw new IOException(tr("Data error: Node {0} is deleted but part of Segment {1}", id, segId));
+        }
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/io/OsmConnection.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/OsmConnection.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/io/OsmConnection.java	(revision 321)
@@ -0,0 +1,134 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.io;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.Font;
+import java.awt.GridBagLayout;
+import java.net.Authenticator;
+import java.net.HttpURLConnection;
+import java.net.PasswordAuthentication;
+
+import javax.swing.JCheckBox;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.tools.Base64;
+import org.openstreetmap.josm.tools.GBC;
+
+/**
+ * Base class that handles common things like authentication for the reader and writer
+ * to the osm server.
+ *
+ * @author imi
+ */
+public class OsmConnection {
+
+	public static class OsmParseException extends Exception {
+		public OsmParseException() {super();}
+		public OsmParseException(String message, Throwable cause) {super(message, cause);}
+		public OsmParseException(String message) {super(message);}
+		public OsmParseException(Throwable cause) {super(cause);}
+	}
+
+	protected boolean cancel = false;
+	protected HttpURLConnection activeConnection;
+
+	private static OsmAuth authentication = new OsmAuth();
+	/**
+	 * Initialize the http defaults and the authenticator.
+	 */
+	static {
+		//TODO: refactor this crap (maybe just insert the damn auth http-header by yourself)
+		try {
+	        HttpURLConnection.setFollowRedirects(true);
+	        Authenticator.setDefault(authentication);
+        } catch (SecurityException e) {
+        }
+	}
+
+	/**
+	 * The authentication class handling the login requests.
+	 */
+	private static class OsmAuth extends Authenticator {
+		/**
+		 * Set to true, when the autenticator tried the password once.
+		 */
+		boolean passwordtried = false;
+		/**
+		 * Whether the user cancelled the password dialog
+		 */
+		boolean authCancelled = false;
+
+		@Override protected PasswordAuthentication getPasswordAuthentication() {
+			String username = Main.pref.get("osm-server.username");
+			String password = Main.pref.get("osm-server.password");
+			if (passwordtried || username.equals("") || password.equals("")) {
+				JPanel p = new JPanel(new GridBagLayout());
+				if (!username.equals("") && !password.equals(""))
+					p.add(new JLabel(tr("Incorrect password or username.")), GBC.eop());
+				p.add(new JLabel(tr("Username")), GBC.std().insets(0,0,10,0));
+				JTextField usernameField = new JTextField(username, 20);
+				p.add(usernameField, GBC.eol());
+				p.add(new JLabel(tr("Password")), GBC.std().insets(0,0,10,0));
+				JPasswordField passwordField = new JPasswordField(password, 20);
+				p.add(passwordField, GBC.eol());
+				JLabel warning = new JLabel(tr("Warning: The password is transferred unencrypted."));
+				warning.setFont(warning.getFont().deriveFont(Font.ITALIC));
+				p.add(warning, GBC.eop());
+
+				JCheckBox savePassword = new JCheckBox(tr("Save user and password (unencrypted)"), !username.equals("") && !password.equals(""));
+				p.add(savePassword, GBC.eop());
+
+				int choice = JOptionPane.showConfirmDialog(Main.parent, p, tr("Enter Password"), JOptionPane.OK_CANCEL_OPTION);
+				if (choice == JOptionPane.CANCEL_OPTION) {
+					authCancelled = true;
+					return null;
+				}
+				username = usernameField.getText();
+				password = String.valueOf(passwordField.getPassword());
+				if (savePassword.isSelected()) {
+					Main.pref.put("osm-server.username", username);
+					Main.pref.put("osm-server.password", password);
+				}
+				if (username.equals(""))
+					return null;
+			}
+			passwordtried = true;
+			return new PasswordAuthentication(username, password.toCharArray());
+		}
+	}
+
+	/**
+	 * Must be called before each connection attemp to initialize the authentication.
+	 */
+	protected final void initAuthentication() {
+		authentication.authCancelled = false;
+		authentication.passwordtried = false;
+	}
+
+	/**
+	 * @return Whether the connection was cancelled.
+	 */
+	protected final boolean isAuthCancelled() {
+		return authentication.authCancelled;
+	}
+
+	public void cancel() {
+		Main.pleaseWaitDlg.currentAction.setText(tr("Aborting..."));
+		cancel = true;
+		if (activeConnection != null) {
+			activeConnection.setConnectTimeout(1);
+			activeConnection.setReadTimeout(1);
+			activeConnection.disconnect();
+		}
+	}
+
+	protected void addAuth(HttpURLConnection con) {
+        con.addRequestProperty("Authorization", "Basic "+Base64.encode(Main.pref.get("osm-server.username")+":"+Main.pref.get("osm-server.password")));
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/io/OsmIdReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/OsmIdReader.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/io/OsmIdReader.java	(revision 321)
@@ -0,0 +1,64 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.io;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+/**
+ * Read only the ids and classes of an stream.
+ * 
+ * @author Imi
+ */
+public class OsmIdReader extends DefaultHandler {
+
+	private boolean cancel;
+	Map<Long, String> entries = new HashMap<Long, String>();
+	private Reader in;
+
+	@Override public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException {
+		if (qName.equals("node") || qName.equals("segment") || qName.equals("way")) {
+			try {
+				entries.put(Long.valueOf(atts.getValue("id")), qName);
+			} catch (Exception e) {
+				e.printStackTrace();
+				throw new SAXException(tr("Error during parse."));
+			}
+		}
+    }
+
+	public Map<Long, String> parseIds(InputStream in) throws IOException, SAXException {
+        this.in = new InputStreamReader(in, "UTF-8");
+		try {
+	        SAXParserFactory.newInstance().newSAXParser().parse(new InputSource(this.in), this);
+        } catch (ParserConfigurationException e) {
+        	if (!cancel) {
+        		e.printStackTrace(); // broken SAXException chaining
+        		throw new SAXException(e);
+        	}
+        } catch (SAXException e) {
+        	if (!cancel)
+        		throw e;
+        }        
+		return entries;
+	}
+	
+	public void cancel() {
+		cancel = true;
+		if (in != null)
+            try {in.close();} catch (IOException e) {}
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/io/OsmReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/OsmReader.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/io/OsmReader.java	(revision 321)
@@ -0,0 +1,330 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.io;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.text.ParseException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.Bounds;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.DataSource;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.User;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.osm.visitor.AddVisitor;
+import org.openstreetmap.josm.data.osm.visitor.Visitor;
+import org.openstreetmap.josm.gui.PleaseWaitDialog;
+import org.openstreetmap.josm.tools.DateParser;
+import org.xml.sax.Attributes;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+/**
+ * Parser for the Osm Api. Read from an input stream and construct a dataset out of it.
+ *
+ * Reading process takes place in three phases. During the first phase (including xml parse),
+ * all nodes are read and stored. Other information than nodes are stored in a raw list
+ *
+ * The second phase reads from the raw list all segments and create Segment objects.
+ *
+ * The third phase read all ways out of the remaining objects in the raw list.
+ *
+ * @author Imi
+ */
+public class OsmReader {
+
+	/**
+	 * This is used as (readonly) source for finding missing references when not transferred in the
+	 * file.
+	 */
+	private DataSet references;
+
+	/**
+	 * The dataset to add parsed objects to.
+	 */
+	private DataSet ds = new DataSet();
+
+	/**
+	 * The visitor to use to add the data to the set.
+	 */
+	private AddVisitor adder = new AddVisitor(ds);
+
+	/**
+	 * All read nodes after phase 1.
+	 */
+	private Map<Long, Node> nodes = new HashMap<Long, Node>();
+
+	// TODO: What the hack? Is this really from me? Please, clean this up!
+	private static class OsmPrimitiveData extends OsmPrimitive {
+		@Override public void visit(Visitor visitor) {}
+		public int compareTo(OsmPrimitive o) {return 0;}
+
+		public void copyTo(OsmPrimitive osm) {
+			osm.id = id;
+			osm.keys = keys;
+			osm.modified = modified;
+			osm.selected = selected;
+			osm.deleted = deleted;
+			osm.timestamp = timestamp;
+			osm.user = user;
+			osm.visible = visible;
+		}
+	}
+
+	/**
+	 * Data structure for the remaining segment objects
+	 * Maps the raw attributes to key/value pairs.
+	 */
+	private Map<OsmPrimitiveData, long[]> segs = new HashMap<OsmPrimitiveData, long[]>();
+
+	/**
+	 * Data structure for the remaining way objects
+	 */
+	private Map<OsmPrimitiveData, Collection<Long>> ways = new HashMap<OsmPrimitiveData, Collection<Long>>();
+
+	/** 
+	 * List of protocol versions that will be accepted on reading
+	 */
+	private HashSet<String> allowedVersions = new HashSet<String>();
+
+	private class Parser extends DefaultHandler {
+		/**
+		 * The current osm primitive to be read.
+		 */
+		private OsmPrimitive current;
+
+		@Override public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException {
+			try {
+				if (qName.equals("osm")) {
+					if (atts == null)
+						throw new SAXException(tr("Unknown version"));
+					if (!allowedVersions.contains(atts.getValue("version")))
+						throw new SAXException(tr("Unknown version")+": "+atts.getValue("version"));
+				} else if (qName.equals("bound")) {
+					String bbox = atts.getValue("box");
+					String origin = atts.getValue("origin");
+					if (bbox != null) {
+						String[] b = bbox.split(",");
+						Bounds bounds = null;
+						if (b.length == 4)
+							bounds = new Bounds(
+									new LatLon(Double.parseDouble(b[0]),Double.parseDouble(b[1])),
+									new LatLon(Double.parseDouble(b[2]),Double.parseDouble(b[3])));
+						DataSource src = new DataSource(bounds, origin);
+						ds.dataSources.add(src);
+					}
+				} else if (qName.equals("node")) {
+					current = new Node(new LatLon(getDouble(atts, "lat"), getDouble(atts, "lon")));
+					readCommon(atts, current);
+					nodes.put(current.id, (Node)current);
+				} else if (qName.equals("segment")) {
+					current = new OsmPrimitiveData();
+					readCommon(atts, current);
+					segs.put((OsmPrimitiveData)current, new long[]{getLong(atts, "from"), getLong(atts, "to")});
+				} else if (qName.equals("way")) {
+					current = new OsmPrimitiveData();
+					readCommon(atts, current);
+					ways.put((OsmPrimitiveData)current, new LinkedList<Long>());
+				} else if (qName.equals("seg")) {
+					Collection<Long> list = ways.get(current);
+					if (list == null)
+						throw new SAXException(tr("Found <seg> tag on non-way."));
+					long id = getLong(atts, "id");
+					if (id == 0)
+						throw new SAXException(tr("Incomplete segment with id=0"));
+					list.add(id);
+				} else if (qName.equals("tag"))
+					current.put(atts.getValue("k"), atts.getValue("v"));
+			} catch (NumberFormatException x) {
+				x.printStackTrace(); // SAXException does not chain correctly
+				throw new SAXException(x.getMessage(), x);
+			} catch (NullPointerException x) {
+				x.printStackTrace(); // SAXException does not chain correctly
+				throw new SAXException(tr("NullPointerException, Possibly some missing tags."), x);
+			}
+		}
+
+		private double getDouble(Attributes atts, String value) {
+			return Double.parseDouble(atts.getValue(value));
+		}
+	}
+	
+	/** 
+	 * Constructor initializes list of allowed protocol versions.
+	 */
+	public OsmReader() {
+		// first add the main server version
+		allowedVersions.add(Main.pref.get("osm-server.version", "0.4"));
+		// now also add all compatible versions
+		String[] additionalVersions = 
+			Main.pref.get("osm-server.additional-versions", "0.3").split("/,/");
+		allowedVersions.addAll(Arrays.asList(additionalVersions));	
+	}
+
+	/**
+	 * Read out the common attributes from atts and put them into this.current.
+	 */
+	void readCommon(Attributes atts, OsmPrimitive current) throws SAXException {
+		current.id = getLong(atts, "id");
+		if (current.id == 0)
+			throw new SAXException(tr("Illegal object with id=0"));
+
+		String time = atts.getValue("timestamp");
+		if (time != null && time.length() != 0) {
+			try {
+				current.timestamp = DateParser.parse(time);
+			} catch (ParseException e) {
+				e.printStackTrace();
+				throw new SAXException(tr("Couldn't read time format \"{0}\".",time));
+			}
+		}
+		
+		// user attribute added in 0.4 API
+		String user = atts.getValue("user");
+		if (user != null) {
+			// do not store literally; get object reference for string
+			current.user = User.get(user);
+		}
+		
+		// visible attribute added in 0.4 API
+		String visible = atts.getValue("visible");
+		if (visible != null) {
+			current.visible = Boolean.parseBoolean(visible);
+		}
+
+		String action = atts.getValue("action");
+		if (action == null)
+			return;
+		if (action.equals("delete"))
+			current.delete(true);
+		else if (action.startsWith("modify"))
+			current.modified = true;
+	}
+	private long getLong(Attributes atts, String value) throws SAXException {
+		String s = atts.getValue(value);
+		if (s == null)
+			throw new SAXException(tr("Missing required attribute \"{0}\".",value));
+		return Long.parseLong(s);
+	}
+
+	private void createSegments() {
+		for (Entry<OsmPrimitiveData, long[]> e : segs.entrySet()) {
+			Node from = findNode(e.getValue()[0]);
+			Node to = findNode(e.getValue()[1]);
+			if (from == null || to == null)
+				continue; //TODO: implement support for incomplete nodes.
+			Segment s = new Segment(from, to);
+			e.getKey().copyTo(s);
+			segments.put(s.id, s);
+			adder.visit(s);
+		}
+	}
+
+	private Node findNode(long id) {
+	    Node n = nodes.get(id);
+	    if (n != null)
+	    	return n;
+	    for (Node node : references.nodes)
+	    	if (node.id == id)
+	    		return node;
+	    // TODO: This has to be changed to support multiple layers.
+	    for (Node node : Main.ds.nodes)
+	    	if (node.id == id)
+	    		return new Node(node);
+	    return null;
+    }
+
+	private Segment findSegment(long id) {
+		Segment s = segments.get(id);
+		if (s != null)
+			return s;
+		for (Segment seg : references.segments)
+			if (seg.id == id)
+				return seg;
+		// TODO: This has to be changed to support multiple layers.
+		for (Segment seg : Main.ds.segments)
+			if (seg.id == id)
+				return new Segment(seg);
+		return null;
+	}
+
+	private void createWays() {
+		for (Entry<OsmPrimitiveData, Collection<Long>> e : ways.entrySet()) {
+			Way w = new Way();
+			for (long id : e.getValue()) {
+				Segment s = findSegment(id);
+				if (s == null) {
+					s = new Segment(id); // incomplete line segment
+					adder.visit(s);
+				}
+				w.segments.add(s);
+			}
+			e.getKey().copyTo(w);
+			adder.visit(w);
+		}
+	}
+
+	/**
+	 * All read segments after phase 2.
+	 */
+	private Map<Long, Segment> segments = new HashMap<Long, Segment>();
+
+	/**
+	 * Parse the given input source and return the dataset.
+	 * @param ref The dataset that is search in for references first. If
+	 * 	the Reference is not found here, Main.ds is searched and a copy of the
+	 *  elemet found there is returned.
+	 */
+	public static DataSet parseDataSet(InputStream source, DataSet ref, PleaseWaitDialog pleaseWaitDlg) throws SAXException, IOException {
+		OsmReader osm = new OsmReader();
+		osm.references = ref == null ? new DataSet() : ref;
+
+		// phase 1: Parse nodes and read in raw segments and ways
+		InputSource inputSource = new InputSource(new InputStreamReader(source, "UTF-8"));
+		try {
+	        SAXParserFactory.newInstance().newSAXParser().parse(inputSource, osm.new Parser());
+        } catch (ParserConfigurationException e1) {
+        	e1.printStackTrace(); // broken SAXException chaining
+        	throw new SAXException(e1);
+        }
+		if (pleaseWaitDlg != null) {
+			pleaseWaitDlg.progress.setValue(0);
+			pleaseWaitDlg.currentAction.setText(tr("Preparing data..."));
+		}
+		for (Node n : osm.nodes.values())
+			osm.adder.visit(n);
+
+		try {
+			osm.createSegments();
+			osm.createWays();
+		} catch (NumberFormatException e) {
+			e.printStackTrace();
+			throw new SAXException(tr("Illformed Node id"));
+		}
+
+		// clear all negative ids (new to this file)
+		for (OsmPrimitive o : osm.ds.allPrimitives())
+			if (o.id < 0)
+				o.id = 0;
+
+		return osm.ds;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/io/OsmServerReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/OsmServerReader.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/io/OsmServerReader.java	(revision 321)
@@ -0,0 +1,61 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.io;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.zip.Inflater;
+import java.util.zip.InflaterInputStream;
+import java.util.zip.GZIPInputStream;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.PleaseWaitDialog;
+
+/**
+ * This DataReader reads directly from the REST API of the osm server.
+ * 
+ * It supports plain text transfer as well as gzip or deflate encoded transfers;
+ * if compressed transfers are unwanted, set property osm-server.use-compression
+ * to false.
+ *
+ * @author imi
+ */
+abstract class OsmServerReader extends OsmConnection {
+	/**
+	 * Open a connection to the given url and return a reader on the input stream
+	 * from that connection. In case of user cancel, return <code>null</code>.
+	 * @param url The exact url to connect to.
+	 * @return An reader reading the input stream (servers answer) or <code>null</code>.
+	 */
+	protected InputStream getInputStream(String urlStr, PleaseWaitDialog pleaseWaitDlg) throws IOException {
+		String version = Main.pref.get("osm-server.version", "0.4");
+		urlStr = Main.pref.get("osm-server.url")+"/"+version+"/" + urlStr;
+		System.out.println("download: "+urlStr);
+		initAuthentication();
+		URL url = new URL(urlStr);
+		activeConnection = (HttpURLConnection)url.openConnection();
+		if (cancel) {
+			activeConnection.disconnect();
+			return null;
+		}
+		
+		if (Boolean.parseBoolean(Main.pref.get("osm-server.use-compression", "true")))
+			activeConnection.setRequestProperty("Accept-Encoding", "gzip, deflate");
+
+		System.out.println("got return: "+activeConnection.getResponseCode());
+		activeConnection.setConnectTimeout(15000);
+		if (isAuthCancelled() && activeConnection.getResponseCode() == 401)
+			return null;
+
+		String encoding = activeConnection.getContentEncoding();
+		InputStream inputStream = new ProgressInputStream(activeConnection, pleaseWaitDlg);
+		if (encoding != null && encoding.equalsIgnoreCase("gzip")) {
+			inputStream = new GZIPInputStream(inputStream);
+		}
+		else if (encoding != null && encoding.equalsIgnoreCase("deflate")) {
+			inputStream = new InflaterInputStream(inputStream, new Inflater(true));
+		}
+		return inputStream;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/io/OsmServerWriter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/OsmServerWriter.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/io/OsmServerWriter.java	(revision 321)
@@ -0,0 +1,205 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.io;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.io.BufferedReader;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.UnknownHostException;
+import java.util.Collection;
+import java.util.LinkedList;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.osm.visitor.NameVisitor;
+import org.openstreetmap.josm.data.osm.visitor.Visitor;
+import org.xml.sax.SAXException;
+
+/**
+ * Class that uploades all changes to the osm server.
+ *
+ * This is done like this: - All objects with id = 0 are uploaded as new, except
+ * those in deleted, which are ignored - All objects in deleted list are
+ * deleted. - All remaining objects with modified flag set are updated.
+ *
+ * This class implements visitor and will perform the correct upload action on
+ * the visited element.
+ *
+ * @author imi
+ */
+public class OsmServerWriter extends OsmConnection implements Visitor {
+
+	/**
+	 * This list contain all sucessfull processed objects. The caller of
+	 * upload* has to check this after the call and update its dataset.
+	 *
+	 * If a server connection error occours, this may contain fewer entries
+	 * than where passed in the list to upload*.
+	 */
+	public Collection<OsmPrimitive> processed;
+
+	/**
+	 * Whether the operation should be aborted as soon as possible.
+	 */
+	private boolean cancel = false;
+
+	/**
+	 * Send the dataset to the server. Ask the user first and does nothing if he
+	 * does not want to send the data.
+	 */
+	public void uploadOsm(Collection<OsmPrimitive> list) throws SAXException {
+		processed = new LinkedList<OsmPrimitive>();
+		initAuthentication();
+
+		Main.pleaseWaitDlg.progress.setMaximum(list.size());
+		Main.pleaseWaitDlg.progress.setValue(0);
+
+		NameVisitor v = new NameVisitor();
+		try {
+			for (OsmPrimitive osm : list) {
+				if (cancel)
+					return;
+				osm.visit(v);
+				Main.pleaseWaitDlg.currentAction.setText(tr("Upload {0} {1} ({2})...", tr(v.className), v.name, osm.id));
+				osm.visit(this);
+				Main.pleaseWaitDlg.progress.setValue(Main.pleaseWaitDlg.progress.getValue()+1);
+			}
+		} catch (RuntimeException e) {
+			e.printStackTrace();
+			throw new SAXException("An error occoured: "+e.getMessage());
+		}
+	}
+
+	/**
+	 * Upload a single node.
+	 */
+	public void visit(Node n) {
+		if (n.id == 0 && !n.deleted && n.get("created_by") == null) {
+			n.put("created_by", "JOSM");
+			sendRequest("PUT", "node", n, true);
+		} else if (n.deleted) {
+			sendRequest("DELETE", "node", n, false);
+		} else {
+			sendRequest("PUT", "node", n, true);
+		}
+		processed.add(n);
+	}
+
+	/**
+	 * Upload a segment (without the nodes).
+	 */
+	public void visit(Segment ls) {
+		if (ls.id == 0 && !ls.deleted && ls.get("created_by") == null) {
+			ls.put("created_by", "JOSM");
+			sendRequest("PUT", "segment", ls, true);
+		} else if (ls.deleted) {
+			sendRequest("DELETE", "segment", ls, false);
+		} else {
+			sendRequest("PUT", "segment", ls, true);
+		}
+		processed.add(ls);
+	}
+
+	/**
+	 * Upload a whole way with the complete segment id list.
+	 */
+	public void visit(Way w) {
+		if (w.id == 0 && !w.deleted && w.get("created_by") == null) {
+			w.put("created_by", "JOSM");
+			sendRequest("PUT", "way", w, true);
+		} else if (w.deleted) {
+			sendRequest("DELETE", "way", w, false);
+		} else {
+			sendRequest("PUT", "way", w, true);
+		}
+		processed.add(w);
+	}
+
+	/**
+	 * Read a long from the input stream and return it.
+	 */
+	private long readId(InputStream inputStream) throws IOException {
+		BufferedReader in = new BufferedReader(new InputStreamReader(
+				inputStream));
+		String s = in.readLine();
+		if (s == null)
+			return 0;
+		try {
+			return Long.parseLong(s);
+		} catch (NumberFormatException e) {
+			return 0;
+		}
+	}
+
+	/**
+	 * Send the request. The objects id will be replaced if it was 0 before
+	 * (on add requests).
+	 *
+	 * @param requestMethod The http method used when talking with the server.
+	 * @param urlSuffix The suffix to add at the server url.
+	 * @param osm The primitive to encode to the server.
+	 * @param addBody <code>true</code>, if the whole primitive body should be added.
+	 * 		<code>false</code>, if only the id is encoded.
+	 */
+	private void sendRequest(String requestMethod, String urlSuffix,
+			OsmPrimitive osm, boolean addBody) {
+		try {
+			String version = Main.pref.get("osm-server.version", "0.4");
+			URL url = new URL(
+					Main.pref.get("osm-server.url") +
+					"/" + version +
+					"/" + urlSuffix + 
+					"/" + ((version.equals("0.4") && osm.id==0) ? "create":osm.id));
+			System.out.println("upload to: "+url);
+			activeConnection = (HttpURLConnection)url.openConnection();
+			activeConnection.setConnectTimeout(15000);
+			activeConnection.setRequestMethod(requestMethod);
+			if (addBody)
+				activeConnection.setDoOutput(true);
+			activeConnection.connect();
+
+			if (addBody) {
+				OutputStream out = activeConnection.getOutputStream();
+				OsmWriter.output(out, new OsmWriter.Single(osm, true));
+				out.close();
+			}
+
+			int retCode = activeConnection.getResponseCode();
+			if (retCode == 200 && osm.id == 0)
+				osm.id = readId(activeConnection.getInputStream());
+			System.out.println("got return: "+retCode+" with id "+osm.id);
+			String retMsg = activeConnection.getResponseMessage();
+			activeConnection.disconnect();
+			if (retCode == 410 && requestMethod.equals("DELETE"))
+				return; // everything fine.. was already deleted.
+			if (retCode != 200) {
+				// Look for a detailed error message from the server
+				if (activeConnection.getHeaderField("Error") != null)
+					retMsg += "\n" + activeConnection.getHeaderField("Error");
+
+				// Report our error
+				ByteArrayOutputStream o = new ByteArrayOutputStream();
+				OsmWriter.output(o, new OsmWriter.Single(osm, true));
+				System.out.println(new String(o.toByteArray(), "UTF-8").toString());
+				throw new RuntimeException(retCode+" "+retMsg);
+			}
+		} catch (UnknownHostException e) {
+			throw new RuntimeException(tr("Unknown host")+": "+e.getMessage(), e);
+		} catch (Exception e) {
+			if (cancel)
+				return; // assume cancel
+			if (e instanceof RuntimeException)
+				throw (RuntimeException)e;
+			throw new RuntimeException(e.getMessage(), e);
+		}
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/io/OsmWriter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/OsmWriter.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/io/OsmWriter.java	(revision 321)
@@ -0,0 +1,194 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.io;
+
+import java.io.PrintWriter;
+import java.util.HashMap;
+import java.util.Map.Entry;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.DataSource;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.osm.visitor.Visitor;
+
+/**
+ * Save the dataset into a stream as osm intern xml format. This is not using any
+ * xml library for storing.
+ * @author imi
+ */
+public class OsmWriter extends XmlWriter implements Visitor {
+
+	/**
+	 * The counter for new created objects. Starting at -1 and goes down.
+	 */
+	private long newIdCounter = -1;
+	/**
+	 * All newly created ids and their primitive that uses it. This is a back reference
+	 * map to allow references to use the correnct primitives.
+	 */
+	private HashMap<OsmPrimitive, Long> usedNewIds = new HashMap<OsmPrimitive, Long>();
+
+	private final boolean osmConform;
+
+	public abstract static class Osm implements OsmWriterInterface {
+		public void header(PrintWriter out) {
+			out.print("<osm version='");
+			out.print(Main.pref.get("osm-server.version", "0.4"));
+			out.println("' generator='JOSM'>");
+		}
+		public void footer(PrintWriter out) {
+			out.println("</osm>");
+		}
+	}
+	
+	/**
+	 * An output writer for function output that writes everything of the given dataset into
+	 * the xml
+	 */
+	public static final class All extends Osm {
+		private final DataSet ds;
+		private final boolean osmConform;
+
+		/**
+		 * Construct an writer function
+		 * @param osmConform <code>true</code>, if the xml should be 100% osm conform. In this
+		 * 		case, not all information can be retrieved later (as example, modified state
+		 * 		is lost and id's remain 0 instead of decrementing from -1)
+		 */
+		public All(DataSet ds, boolean osmConform) {
+			this.ds = ds;
+			this.osmConform = osmConform;
+		}
+
+		public void write(PrintWriter out) {
+			Visitor writer = new OsmWriter(out, osmConform);
+			for (Node n : ds.nodes)
+				if (shouldWrite(n))
+					writer.visit(n);
+			for (Segment ls : ds.segments)
+				if (shouldWrite(ls))
+					writer.visit(ls);
+			for (Way w : ds.ways)
+				if (shouldWrite(w))
+					writer.visit(w);
+        }
+
+		private boolean shouldWrite(OsmPrimitive osm) {
+	        return osm.id != 0 || !osm.deleted;
+        }
+
+		@Override public void header(PrintWriter out) {
+	        super.header(out);
+			for (DataSource s : ds.dataSources) {
+				out.print("  <bound box='"+
+						s.bounds.min.lat()+","+
+						s.bounds.min.lon()+","+
+						s.bounds.max.lat()+","+
+						s.bounds.max.lon()+"' ");
+				out.println("origin='"+XmlWriter.encode(s.origin)+"' />");
+			}
+        }
+	}
+
+	/**
+	 * An output writer for functino output that writes only one specific primitive into
+	 * the xml
+	 */
+	public static final class Single extends Osm {
+		private final OsmPrimitive osm;
+		private final boolean osmConform;
+
+		public Single(OsmPrimitive osm, boolean osmConform) {
+			this.osm = osm;
+			this.osmConform = osmConform;
+		}
+
+		public void write(PrintWriter out) {
+			osm.visit(new OsmWriter(out, osmConform));
+        }
+	}
+
+	private OsmWriter(PrintWriter out, boolean osmConform) {
+		super(out);
+		this.osmConform = osmConform;
+	}
+
+	public void visit(Node n) {
+		addCommon(n, "node");
+		out.print(" lat='"+n.coor.lat()+"' lon='"+n.coor.lon()+"'");
+		addTags(n, "node", true);
+	}
+
+	public void visit(Segment ls) {
+		if (ls.incomplete)
+			return; // Do not write an incomplete segment
+		addCommon(ls, "segment");
+		out.print(" from='"+getUsedId(ls.from)+"' to='"+getUsedId(ls.to)+"'");
+		addTags(ls, "segment", true);
+	}
+
+	public void visit(Way w) {
+		addCommon(w, "way");
+		out.println(">");
+		for (Segment ls : w.segments)
+			out.println("    <seg id='"+getUsedId(ls)+"' />");
+		addTags(w, "way", false);
+	}
+
+	/**
+	 * Return the id for the given osm primitive (may access the usedId map)
+	 */
+	private long getUsedId(OsmPrimitive osm) {
+		if (osm.id != 0)
+			return osm.id;
+		if (usedNewIds.containsKey(osm))
+			return usedNewIds.get(osm);
+		usedNewIds.put(osm, newIdCounter);
+		return osmConform ? 0 : newIdCounter--;
+	}
+
+
+	private void addTags(OsmPrimitive osm, String tagname, boolean tagOpen) {
+		if (osm.keys != null) {
+			if (tagOpen)
+				out.println(">");
+			for (Entry<String, String> e : osm.keys.entrySet())
+				out.println("    <tag k='"+ XmlWriter.encode(e.getKey()) +
+						"' v='"+XmlWriter.encode(e.getValue())+ "' />");
+			out.println("  </" + tagname + ">");
+		} else if (tagOpen)
+			out.println(" />");
+		else
+			out.println("  </" + tagname + ">");
+	}
+
+	/**
+	 * Add the common part as the form of the tag as well as the XML attributes
+	 * id, action, user, and visible.
+	 */
+	private void addCommon(OsmPrimitive osm, String tagname) {
+		out.print("  <"+tagname+" id='"+getUsedId(osm)+"'");
+		if (!osmConform) {
+			String action = null;
+			if (osm.deleted)
+				action = "delete";
+			else if (osm.modified)
+				action = "modify";
+			if (action != null)
+				out.print(" action='"+action+"'");
+		}
+		if (osm.timestamp != null) {
+			String time = osm.getTimeStr();
+			out.print(" timestamp='"+time+"'");
+		}
+		// user and visible added with 0.4 API
+		if (osm.user != null) {
+			out.print(" user='"+XmlWriter.encode(osm.user.name)+"'");
+		}
+		out.print(" visible='"+osm.visible+"'");
+		
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/io/ProgressInputStream.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/ProgressInputStream.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/io/ProgressInputStream.java	(revision 321)
@@ -0,0 +1,96 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.io;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URLConnection;
+
+import org.openstreetmap.josm.gui.PleaseWaitDialog;
+
+/**
+ * Read from an other reader and increment an progress counter while on the way.
+ * @author Imi
+ */
+public class ProgressInputStream extends InputStream {
+
+	private final InputStream in;
+	private int readSoFar = 0;
+	private int lastDialogUpdate = 0;
+	private final URLConnection connection;
+	private PleaseWaitDialog pleaseWaitDlg;
+
+	public class OsmServerException extends IOException {
+		private OsmServerException(String e) {
+			super(e);
+		}
+	}
+
+	public ProgressInputStream(URLConnection con, PleaseWaitDialog pleaseWaitDlg) throws IOException, OsmServerException {
+		this.connection = con;
+
+		try {
+			this.in = con.getInputStream();
+		} catch (IOException e) {
+			if (con.getHeaderField("Error") != null)
+				throw new OsmServerException(con.getHeaderField("Error"));
+			throw e;
+		}
+
+		int contentLength = con.getContentLength();
+		this.pleaseWaitDlg = pleaseWaitDlg;
+		if (pleaseWaitDlg == null)
+			return;
+		if (contentLength > 0)
+			pleaseWaitDlg.progress.setMaximum(contentLength);
+		else
+			pleaseWaitDlg.progress.setMaximum(0);
+		pleaseWaitDlg.progress.setValue(0);
+	}
+
+	@Override public void close() throws IOException {
+		in.close();
+	}
+
+	@Override public int read(byte[] b, int off, int len) throws IOException {
+		int read = in.read(b, off, len);
+		if (read != -1)
+			advanceTicker(read);
+		return read;
+	}
+
+	@Override public int read() throws IOException {
+		int read = in.read();
+		if (read != -1)
+			advanceTicker(1);
+		return read;
+	}
+
+	/**
+	 * Increase ticker (progress counter and displayed text) by the given amount.
+	 * @param amount
+	 */
+	private void advanceTicker(int amount) {
+		if (pleaseWaitDlg == null)
+			return;
+
+		if (pleaseWaitDlg.progress.getMaximum() == 0 && connection.getContentLength() != -1)
+			pleaseWaitDlg.progress.setMaximum(connection.getContentLength());
+
+		readSoFar += amount;
+
+		if (readSoFar / 1024 != lastDialogUpdate) {
+			lastDialogUpdate++;
+			String progStr = " "+readSoFar/1024+"/";
+			progStr += (pleaseWaitDlg.progress.getMaximum()==0) ? "??? KB" : (pleaseWaitDlg.progress.getMaximum()/1024)+" KB";
+			pleaseWaitDlg.progress.setValue(readSoFar);
+
+			String cur = pleaseWaitDlg.currentAction.getText();
+			int i = cur.indexOf(' ');
+			if (i != -1)
+				cur = cur.substring(0, i) + progStr;
+			else
+				cur += progStr;
+			pleaseWaitDlg.currentAction.setText(cur);
+		}
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/io/RawCsvReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/RawCsvReader.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/io/RawCsvReader.java	(revision 321)
@@ -0,0 +1,93 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.io;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.Reader;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.StringTokenizer;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.gui.layer.RawGpsLayer.GpsPoint;
+import org.xml.sax.SAXException;
+
+/**
+ * Read raw information from a csv style file (as defined in the preferences).
+ * @author imi
+ */
+public class RawCsvReader {
+
+	/**
+	 * Reader to read the input from.
+	 */
+	private BufferedReader in;
+
+	public RawCsvReader(Reader in) {
+		this.in = new BufferedReader(in);
+	}
+
+	public Collection<GpsPoint> parse() throws SAXException, IOException {
+		Collection<GpsPoint> data = new LinkedList<GpsPoint>();
+		String formatStr = Main.pref.get("csv.importstring");
+		if (formatStr == null || formatStr.equals(""))
+			formatStr = in.readLine();
+		if (formatStr == null || formatStr.equals(""))
+			throw new SAXException(tr("Could not detect data format string."));
+
+		// get delimiter
+		String delim = ",";
+		for (int i = 0; i < formatStr.length(); ++i) {
+			if (!Character.isLetterOrDigit(formatStr.charAt(i))) {
+				delim = ""+formatStr.charAt(i);
+				break;
+			}
+		}
+
+		// convert format string
+		ArrayList<String> format = new ArrayList<String>();
+		for (StringTokenizer st = new StringTokenizer(formatStr, delim); st.hasMoreTokens();) {
+			String token = st.nextToken();
+			if (!token.equals("lat") && !token.equals("lon") && !token.equals("time"))
+				token = "ignore";
+			format.add(token);
+		}
+
+		// test for completness
+		if (!format.contains("lat") || !format.contains("lon")) {
+			if (Main.pref.get("csv.importstring").equals(""))
+				throw new SAXException(tr("Format string in data is incomplete or not found. Try setting an manual format string in preferences."));
+			throw new SAXException(tr("Format string is incomplete. Need at least 'lat' and 'lon' specification"));
+		}
+
+		int lineNo = 0;
+		try {
+			for (String line = in.readLine(); line != null; line = in.readLine()) {
+				lineNo++;
+				StringTokenizer st = new StringTokenizer(line, delim);
+				double lat = 0, lon = 0;
+				String time = null;
+				for (String token : format) {
+					if (token.equals("lat"))
+						lat = Double.parseDouble(st.nextToken());
+					else if (token.equals("lon"))
+						lon = Double.parseDouble(st.nextToken());
+					else if (token.equals("time"))
+						time = (time == null?"":(time+" ")) + st.nextToken();
+					else if (token.equals("ignore"))
+						st.nextToken();
+					else
+						throw new SAXException(tr("Unknown data type: \"{0}\".",token)+(Main.pref.get("csv.importstring").equals("") ? (" "+tr("Maybe add a format string in preferences.")) : ""));
+				}
+				data.add(new GpsPoint(new LatLon(lat, lon), time));
+			}
+		} catch (RuntimeException e) {
+			throw new SAXException(tr("Parsing error in line {0}",lineNo), e);
+		}
+		return data;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/io/RawGpsReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/RawGpsReader.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/io/RawGpsReader.java	(revision 321)
@@ -0,0 +1,140 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.io;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.Stack;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.gui.layer.RawGpsLayer.GpsPoint;
+import org.openstreetmap.josm.gui.layer.markerlayer.Marker;
+import org.openstreetmap.josm.gui.layer.markerlayer.MarkerProducers;
+import org.xml.sax.Attributes;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+/**
+ * Read raw gps data from a gpx file. Only way points with their ways segments
+ * and waypoints are imported.
+ * @author imi
+ */
+public class RawGpsReader {
+
+	/**
+	 * The relative path when constructing markers from wpt-tags. Passed to 
+	 * {@link MarkerProducers#createMarker(LatLon, java.util.Map, String)}
+	 */
+	private File relativeMarkerPath;
+
+	/**
+	 * Hold the resulting gps data (tracks and their track points)
+	 */
+	public Collection<Collection<GpsPoint>> trackData = new LinkedList<Collection<GpsPoint>>();
+
+	/**
+	 * Hold the waypoints of the gps data.
+	 */
+	public Collection<Marker> markerData = new ArrayList<Marker>();
+
+	private class Parser extends DefaultHandler {
+		/**
+		 * Current track to be read. The last entry is the current trkpt.
+		 * If in wpt-mode, it contain only one GpsPoint.
+		 */
+		private Collection<GpsPoint> current = new LinkedList<GpsPoint>();
+		private LatLon currentLatLon;
+		private HashMap<String, String> currentTagValues = new HashMap<String, String>();
+		private Stack<String> tags = new Stack<String>();
+
+		@Override public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException {
+			if (qName.equals("wpt") || qName.equals("trkpt")) {
+				try {
+					double lat = Double.parseDouble(atts.getValue("lat"));
+					double lon = Double.parseDouble(atts.getValue("lon"));
+					if (Math.abs(lat) > 90)
+						throw new SAXException(tr("Data error: lat value \"{0}\" is out of bounds.", lat));
+					if (Math.abs(lon) > 180)
+						throw new SAXException(tr("Data error: lon value \"{0}\" is out of bounds.", lon));
+					currentLatLon = new LatLon(lat, lon);
+				} catch (NumberFormatException e) {
+					e.printStackTrace();
+					throw new SAXException(e);
+				}
+				currentTagValues.clear();
+			}
+			tags.push(qName);
+		}
+
+		@Override public void characters(char[] ch, int start, int length) {
+			String peek = tags.peek();
+			if (peek.equals("time") || peek.equals("name") || peek.equals("link") || peek.equals("symbol")) {
+				String tag = tags.pop();
+				if (tags.empty() || (!tags.peek().equals("wpt") && !tags.peek().equals("trkpt"))) {
+					tags.push(tag);
+					return;
+				}
+				String contents = new String(ch, start, length);
+				String oldContents = currentTagValues.get(peek);
+				if (oldContents == null) {
+					currentTagValues.put(peek, contents);
+				} else {
+					currentTagValues.put(peek, oldContents + contents);	
+				}
+				tags.push(tag);
+			}
+		}
+
+		@Override public void endElement(String namespaceURI, String localName, String qName) {
+			if (qName.equals("trkpt")) {
+				current.add(new GpsPoint(currentLatLon, currentTagValues.get("time")));
+				currentTagValues.clear();
+			} else if (qName.equals("wpt")) {
+				Marker m = Marker.createMarker(currentLatLon, currentTagValues, relativeMarkerPath);
+				if (m != null)
+					markerData.add(m);
+				currentTagValues.clear();
+			} else if (qName.equals("trkseg") || qName.equals("trk") || qName.equals("gpx")) {
+				newTrack();
+				currentTagValues.clear();
+			}
+			tags.pop();
+		}
+
+		private void newTrack() {
+			if (!current.isEmpty()) {
+				trackData.add(current);
+				current = new LinkedList<GpsPoint>();
+			}
+		}
+	}
+
+	/**
+	 * Parse the input stream and store the result in trackData and markerData
+	 * 
+	 * @param relativeMarkerPath The directory to use as relative path for all &lt;wpt&gt; 
+	 *    marker tags. Maybe <code>null</code>, in which case no relative urls are constructed for the markers. 
+	 */
+	public RawGpsReader(InputStream source, File relativeMarkerPath) throws SAXException, IOException {
+		this.relativeMarkerPath = relativeMarkerPath;
+		Parser parser = new Parser();
+		InputSource inputSource = new InputSource(new InputStreamReader(source, "UTF-8"));
+		try {
+			SAXParserFactory.newInstance().newSAXParser().parse(inputSource, parser);
+        } catch (ParserConfigurationException e) {
+        	e.printStackTrace(); // broken SAXException chaining
+        	throw new SAXException(e);
+        }
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/io/XmlWriter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/XmlWriter.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/io/XmlWriter.java	(revision 321)
@@ -0,0 +1,86 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.io;
+
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.io.UnsupportedEncodingException;
+import java.util.HashMap;
+
+/**
+ * Helper class to use for xml outputting classes.
+ * 
+ * @author imi
+ */
+public class XmlWriter {
+
+	/**
+	 * The interface to write the data into an Osm stream
+	 * @author immanuel.scholz
+	 */
+	public static interface OsmWriterInterface {
+		void header(PrintWriter out);
+		void write(PrintWriter out);
+		void footer(PrintWriter out);
+	}
+
+
+	protected XmlWriter(PrintWriter out) {
+		this.out = out;
+	}
+
+	/**
+	 * Encode the given string in XML1.0 format.
+	 * Optimized to fast pass strings that don't need encoding (normal case).
+	 */
+	public static String encode(String unencoded) {
+		StringBuilder buffer = null;
+		for (int i = 0; i < unencoded.length(); ++i) {
+			String encS = XmlWriter.encoding.get(unencoded.charAt(i));
+			if (encS != null) {
+				if (buffer == null)
+					buffer = new StringBuilder(unencoded.substring(0,i));
+				buffer.append(encS);
+			} else if (buffer != null)
+				buffer.append(unencoded.charAt(i));
+		}
+		return (buffer == null) ? unencoded : buffer.toString();
+	}
+
+	/**
+	 * Write the header and start tag, then call the runnable to add all real tags and finally
+	 * "closes" the xml by writing the footer.
+	 */
+	public static void output(OutputStream outStream, OsmWriterInterface outputWriter) {
+		PrintWriter out;
+		try {
+			out = new PrintWriter(new OutputStreamWriter(outStream, "UTF-8"));
+		} catch (UnsupportedEncodingException e) {
+			throw new RuntimeException(e);
+		}
+		out.println("<?xml version='1.0' encoding='UTF-8'?>");
+		outputWriter.header(out);
+		outputWriter.write(out);
+		outputWriter.footer(out);
+		out.flush();
+		out.close();
+	}
+
+
+
+	/**
+	 * The output writer to save the values to.
+	 */
+	protected final PrintWriter out;
+	final private static HashMap<Character, String> encoding = new HashMap<Character, String>();
+	static {
+		encoding.put('<', "&lt;");
+		encoding.put('>', "&gt;");
+		encoding.put('"', "&quot;");
+		encoding.put('\'', "&apos;");
+		encoding.put('&', "&amp;");
+		encoding.put('\n', "&#xA;");
+		encoding.put('\r', "&#xD;");
+		encoding.put('\t', "&#x9;");
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/plugins/Plugin.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/plugins/Plugin.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/plugins/Plugin.java	(revision 321)
@@ -0,0 +1,93 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.plugins;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.gui.download.DownloadSelection;
+import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
+
+/**
+ * All plugins *must* have an standard constructor taking no arguments.
+ *
+ * This constructor is called at JOSM startup, after all Main-objects have been initialized.
+ * For all purposes of loading dynamic resources, the Plugin's class loader should be used
+ * (or else, the plugin jar will not be within the class path).
+ *
+ * A plugin may subclass this abstract base class (but it is optional).
+ *
+ * The actual implementation of this class is optional, as all functions will be called
+ * via reflection. This is to be able to change this interface without the need of 
+ * recompiling or even breaking the plugins. If your class does not provide a
+ * function here (or does provide a function with a mismatching signature), it will not
+ * be called. That simple.
+ *
+ * Or in other words: See this base class as an documentation of what automatic callbacks
+ * are provided (you can register yourself to more callbacks in your plugin class
+ * constructor).
+ * 
+ * Subclassing Plugin and overriding some functions makes it easy for you to keep sync
+ * with the correct actual plugin architecture of JOSM.
+ *
+ * @author Immanuel.Scholz
+ */
+public abstract class Plugin {
+
+	/**
+	 * This is the info available for this plugin. You can access this from your
+	 * constructor.
+	 *
+	 * (The actual implementation to request the info from a static variable
+	 * is a bit hacky, but it works).
+	 */
+	public final PluginInformation info = PluginInformation.currentPluginInitialization;
+
+	/**
+	 * @return The directory for the plugin to store all kind of stuff.
+	 */
+	public final String getPluginDir() {
+		return Main.pref.getPreferencesDir()+"plugins/"+info.name+"/";
+	}
+
+	/**
+	 * Called after Main.mapFrame is initalized. (After the first data is loaded).
+	 * You can use this callback to tweak the newFrame to your needs, as example install
+	 * an alternative Painter.
+	 */
+	public void mapFrameInitialized(MapFrame oldFrame, MapFrame newFrame) {}
+
+	/**
+	 * Called in the preferences dialog to create a preferences page for the plugin,
+	 * if any available.
+	 */
+	public PreferenceSetting getPreferenceSetting() { return null; }
+	
+	/**
+	 * Called in the download dialog to give the plugin a chance to modify the list
+	 * of bounding box selectors.
+	 */
+	public void addDownloadSelection(List<DownloadSelection> list) {}
+	
+	/**
+	 * Copies the ressource 'from' to the file in the plugin directory named 'to'.
+	 */
+	public void copy(String from, String to) throws FileNotFoundException, IOException {
+		String pluginDirName = Main.pref.getPreferencesDir()+"plugins/"+info.name+"/";
+        File pluginDir = new File(pluginDirName);
+        if (!pluginDir.exists())
+        	pluginDir.mkdirs();
+        FileOutputStream out = new FileOutputStream(pluginDirName+to);
+        InputStream in = getClass().getResourceAsStream(from);
+        byte[] buffer = new byte[8192];
+        for(int len = in.read(buffer); len > 0; len = in.read(buffer))
+        	out.write(buffer, 0, len);
+        in.close();
+        out.close();
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/plugins/PluginDownloader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/plugins/PluginDownloader.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/plugins/PluginDownloader.java	(revision 321)
@@ -0,0 +1,165 @@
+//License: GPL. Copyright 2007 by Immanuel Scholz and others
+/**
+ * 
+ */
+package org.openstreetmap.josm.plugins;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Collection;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.PleaseWaitRunnable;
+import org.openstreetmap.josm.gui.preferences.PluginPreference.PluginDescription;
+import org.xml.sax.SAXException;
+
+public class PluginDownloader {
+
+	private static final class UpdateTask extends PleaseWaitRunnable {
+		private final Collection<PluginDescription> toUpdate;
+		private String errors = "";
+		private int count = 0;
+
+		private UpdateTask(Collection<PluginDescription> toUpdate) {
+			super(tr("Update Plugins"));
+			this.toUpdate = toUpdate;
+		}
+
+		@Override protected void cancel() {
+			finish();
+		}
+
+		@Override protected void finish() {
+			if (errors.length() > 0)
+				JOptionPane.showMessageDialog(Main.parent, tr("There were problems with the following plugins:\n\n {0}",errors));
+			else
+				JOptionPane.showMessageDialog(Main.parent, trn("{0} Plugin successfully updated. Please restart JOSM.", "{0} Plugins successfully updated. Please restart JOSM.", count, count));
+		}
+
+		@Override protected void realRun() throws SAXException, IOException {
+			for (PluginDescription d : toUpdate) {
+				File tempFile = new File(Main.pref.getPreferencesDir()+"temp.jar");
+				if (download(d.resource, tempFile)) {
+					tempFile.renameTo(new File(Main.pref.getPreferencesDir()+"plugins/"+d.name+".jar"));
+					count++;
+				} else
+					errors += d.name + "\n";
+			}
+		}
+	}
+
+	private static final Pattern wiki = Pattern.compile("^</td></tr><tr><td><a class=\"ext-link\" href=\"([^\"]*)\"><span class=\"icon\">([^<]*)</span></a></td><td>([^<]*)</td><td>([^<].*)</td><td>(.*)");
+
+	public static int downloadDescription() {
+		int count = 0;
+		for (String site : getSites()) {
+			try {
+				BufferedReader r = new BufferedReader(new InputStreamReader(new URL(site).openStream()));
+				CharSequence txt;
+				if (site.toLowerCase().endsWith(".xml"))
+					txt = readXml(r);
+				else
+					txt = readWiki(r);
+				r.close();
+				new File(Main.pref.getPreferencesDir()+"plugins").mkdir();
+				FileWriter out = new FileWriter(Main.pref.getPreferencesDir()+"plugins/"+count+"-site-"+site.replaceAll("[/:\\\\ <>|]", "_")+".xml");
+				out.append(txt);
+				out.close();
+				count++;
+			} catch (IOException x) {
+			}
+		}
+		return count;
+	}
+
+	public static String[] getSites() {
+	    return Main.pref.get("pluginmanager.sites", "http://josm.openstreetmap.de/wiki/Plugins").split(" ");
+    }
+
+	private static CharSequence readXml(BufferedReader r) throws IOException {
+		StringBuilder b = new StringBuilder();
+		for (String line = r.readLine(); line != null; line = r.readLine())
+			b.append(line+"\n");
+		return b;
+	}
+
+	private static CharSequence readWiki(BufferedReader r) throws IOException {
+		StringBuilder b = new StringBuilder("<plugins>\n");
+		for (String line = r.readLine(); line != null; line = r.readLine()) {
+			Matcher m = wiki.matcher(line);
+			if (!m.matches())
+				continue;
+			b.append("  <plugin>\n");
+			b.append("    <name>"+escape(m.group(2))+"</name>\n");
+			b.append("    <resource>"+escape(m.group(1))+"</resource>\n");
+			b.append("    <author>"+escape(m.group(3))+"</author>\n");
+			b.append("    <description>"+escape(m.group(4))+"</description>\n");
+			b.append("    <version>"+escape(m.group(5))+"</version>\n");
+			b.append("  </plugin>\n");
+		}
+		b.append("</plugins>\n");
+		return b;
+	}
+
+	private static String escape(String s) {
+		return s.replaceAll("<", "&lt;").replaceAll(">", "&gt;");
+	}
+
+	public static boolean downloadPlugin(PluginDescription pd) {
+		File file = new File(Main.pref.getPreferencesDir()+"plugins/"+pd.name+".jar");
+		if (!download(pd.resource, file)) {
+			JOptionPane.showMessageDialog(Main.parent, tr("Could not download plugin: {0} from {1}", pd.name, pd.resource));
+		} else {
+			try {
+				PluginInformation.findPlugin(pd.name);
+				return true;
+			} catch (Exception e) {
+				e.printStackTrace();
+				JOptionPane.showMessageDialog(Main.parent, tr("The plugin {0} seem to be broken or could not be downloaded automatically.", pd.name));
+			}
+		}
+		if (file.exists())
+			file.delete();
+		return false;
+	}
+
+	private static boolean download(String url, File file) {
+		try {
+			InputStream in = new URL(url).openStream();
+			OutputStream out = new FileOutputStream(file);
+			byte[] buffer = new byte[8192];
+			for (int read = in.read(buffer); read != -1; read = in.read(buffer))
+				out.write(buffer, 0, read);
+			out.close();
+			in.close();
+			return true;
+		} catch (MalformedURLException e) {
+			e.printStackTrace();
+		} catch (FileNotFoundException e) {
+			e.printStackTrace();
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return false;
+	}
+
+	public static void update(Collection<PluginDescription> update) {
+		Main.worker.execute(new UpdateTask(update));
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/plugins/PluginException.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/plugins/PluginException.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/plugins/PluginException.java	(revision 321)
@@ -0,0 +1,22 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.plugins;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+/**
+ * Exception that wraps any exception thrown by plugins. It is used in the JOSM main system
+ * and there is no particular reason to use this within the plugin itself (although there
+ * is also no reason against this.. ;)
+ * 
+ * @author Immanuel.Scholz
+ */
+public class PluginException extends RuntimeException {
+	public final PluginProxy plugin;
+	public final String name;
+
+	public PluginException(PluginProxy plugin, String name, Throwable cause) {
+	    super(tr("An error occoured in plugin {0}", name), cause);
+		this.plugin = plugin;
+		this.name = name;
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java	(revision 321)
@@ -0,0 +1,234 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.plugins;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.jar.Attributes;
+import java.util.jar.JarInputStream;
+import java.util.jar.Manifest;
+
+import org.openstreetmap.josm.Main;
+
+/**
+ * Encapsulate general information about a plugin. This information is available
+ * without the need of loading any class from the plugin jar file.
+ *
+ * @author imi
+ */
+public class PluginInformation {
+	
+	public final File file;
+	public final String name;
+	public final String className;
+	public final String description;
+	public final boolean early;
+	public final String author;
+	public final int stage;
+	public final String version;
+	public final List<URL> libraries = new LinkedList<URL>();
+
+	public final Map<String, String> attr = new TreeMap<String, String>();
+
+	/**
+	 * Used in the Plugin constructor to make the information of the plugin
+	 * that is currently initializing available.
+	 * 
+	 * If you think this is hacky, you are probably right. But it is 
+	 * convinient anyway ;-) 
+	 */
+	static PluginInformation currentPluginInitialization = null;
+
+	/**
+	 * @param file the plugin jar file.
+	 */
+	public PluginInformation(File file) {
+		this(file, file.getName().substring(0, file.getName().length()-4), null);
+	}
+
+	public PluginInformation(File file, String name, InputStream manifestStream) {
+		this.name = name;
+		this.file = file;
+		try {
+			Manifest manifest;
+			JarInputStream jar = null;
+			if (file != null) {
+				jar = new JarInputStream(new FileInputStream(file));
+				manifest = jar.getManifest();
+				if (manifest == null)
+					throw new IOException(file+" contains no manifest.");
+			} else {
+				manifest = new Manifest();
+		        manifest.read(manifestStream);
+			}
+			if (manifest != null) {
+				Attributes attr = manifest.getMainAttributes();
+				className = attr.getValue("Plugin-Class");
+				description = attr.getValue("Plugin-Description");
+				early = Boolean.parseBoolean(attr.getValue("Plugin-Early"));
+				String stageStr = attr.getValue("Plugin-Stage");
+				stage = stageStr == null ? 50 : Integer.parseInt(stageStr);
+				version = attr.getValue("Plugin-Version");
+				author = attr.getValue("Author");
+
+				String classPath = attr.getValue(Attributes.Name.CLASS_PATH);
+				if (classPath != null) {
+					String[] cp = classPath.split(" ");
+					StringBuilder entry = new StringBuilder();
+					for (String s : cp) {
+						entry.append(s);
+						if (s.endsWith("\\")) {
+							entry.setLength(entry.length()-1);
+							entry.append("%20"); // append the split character " " as html-encode
+							continue;
+						}
+						s = entry.toString();
+						entry = new StringBuilder();
+						if (!s.startsWith("/") && !s.startsWith("\\") && !s.matches("^.\\:") && file != null)
+							s = file.getParent() + File.separator + s;
+						libraries.add(new URL(getURLString(s)));
+					}
+				}
+				for (Object o : attr.keySet())
+					this.attr.put(o.toString(), attr.getValue(o.toString()));
+			} else {
+				// resource-only plugin
+				className = null;
+				description = tr("unknown");
+				early = false;
+				stage = 50;
+				version = null;
+				author = null;
+			}
+			if (file != null)
+				libraries.add(0, new URL(getURLString(file.getAbsolutePath())));
+
+			if (jar != null)
+				jar.close();
+		} catch (IOException e) {
+			throw new PluginException(null, name, e);
+		}
+	}
+
+	/**
+	 * Load and instantiate the plugin
+	 */
+	public PluginProxy load(Class<?> klass) {
+		try {
+			currentPluginInitialization = this;
+			return new PluginProxy(klass.newInstance(), this);
+		} catch (Exception e) {
+			throw new PluginException(null, name, e);
+		}
+	}
+
+	/**
+	 * Load the class of the plugin
+	 */
+	public Class<?> loadClass(ClassLoader classLoader) {
+		if (className == null)
+			return null;
+		try {
+			Class<?> realClass = Class.forName(className, true, classLoader);
+			return realClass;
+		} catch (Exception e) {
+			throw new PluginException(null, name, e);
+		}
+	}
+
+	public static String getURLString(String fileName) {
+		if (System.getProperty("os.name").startsWith("Windows"))
+			return "file:/"+fileName;
+		return "file://"+fileName;
+	}
+
+	/**
+	 * Try to find a plugin after some criterias. Extract the plugin-information
+	 * from the plugin and return it. The plugin is searched in the following way:
+	 * 
+	 *<li>first look after an MANIFEST.MF in the package org.openstreetmap.josm.plugins.<plugin name>
+	 *    (After removing all fancy characters from the plugin name).
+	 *    If found, the plugin is loaded using the bootstrap classloader.
+	 *<li>If not found, look for a jar file in the user specific plugin directory
+	 *    (~/.josm/plugins/<plugin name>.jar)
+	 *<li>If not found and the environment variable JOSM_RESSOURCES + "/plugins/" exist, look there.
+	 *<li>Try for the java property josm.ressources + "/plugins/" (set via java -Djosm.plugins.path=...)
+	 *<li>If the environment variable ALLUSERSPROFILE and APPDATA exist, look in 
+	 *    ALLUSERSPROFILE/<the last stuff from APPDATA>/JOSM/plugins. 
+	 *    (*sic* There is no easy way under Windows to get the All User's application 
+	 *    directory)
+	 *<li>Finally, look in some typical unix paths:<ul> 
+	 *    <li>/usr/local/share/josm/plugins/
+	 *    <li>/usr/local/lib/josm/plugins/
+	 *    <li>/usr/share/josm/plugins/
+	 *    <li>/usr/lib/josm/plugins/
+	 * 
+	 * If a plugin class or jar file is found earlier in the list but seem not to
+	 * be working, an PluginException is thrown rather than continuing the search.
+	 * This is so JOSM can detect broken user-provided plugins and do not go silently
+	 * ignore them. 
+	 * 
+	 * The plugin is not initialized. If the plugin is a .jar file, it is not loaded
+	 * (only the manifest is extracted). In the classloader-case, the class is 
+	 * bootstraped (e.g. static {} - declarations will run. However, nothing else is done.
+	 *
+	 * @param pluginName The name of the plugin (in all lowercase). E.g. "lang-de"
+	 * @return Information about the plugin or <code>null</code>, if the plugin
+	 * 	       was nowhere to be found.
+	 * @throws PluginException In case of broken plugins.
+	 */
+	public static PluginInformation findPlugin(String pluginName) throws PluginException {
+    	String name = pluginName;
+    	name = name.replaceAll("[-. ]", "");
+    	InputStream manifestStream = PluginInformation.class.getResourceAsStream("/org/openstreetmap/josm/plugins/"+name+"/MANIFEST.MF");
+    	if (manifestStream != null)
+	        return new PluginInformation(null, pluginName, manifestStream);
+
+        Collection<String> locations = getPluginLocations();
+
+       	for (String s : locations) {
+       		File pluginFile = new File(s+"/"+pluginName+".jar");
+       		if (pluginFile.exists()) {
+				PluginInformation info = new PluginInformation(pluginFile);
+				return info;
+       		}
+       	}
+       	return null;
+	}
+
+	public static Collection<String> getPluginLocations() {
+	    Collection<String> locations = Main.pref.getAllPossiblePreferenceDirs();
+	    Collection<String> all = new ArrayList<String>(locations.size());
+	    for (String s : locations)
+	    	all.add(s+"plugins");
+	    return all;
+    }
+	
+	
+	/**
+	 * Return information about a loaded plugin.
+	 * 
+	 * Note that if you call this in your plugins bootstrap, you may get <code>null</code> if
+	 * the plugin requested is not loaded yet.
+	 * 
+	 * @return The PluginInformation to a specific plugin, but only if the plugin is loaded.
+	 * If it is not loaded, <code>null</code> is returned.
+	 */
+	public static PluginInformation getLoaded(String pluginName) {
+		for (PluginProxy p : Main.plugins)
+			if (p.info.name.equals(pluginName))
+				return p.info;
+		return null;
+	}
+}
+
Index: /trunk/src/org/openstreetmap/josm/plugins/PluginProxy.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/plugins/PluginProxy.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/plugins/PluginProxy.java	(revision 321)
@@ -0,0 +1,56 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.plugins;
+
+import java.util.List;
+
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.gui.download.DownloadSelection;
+import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
+
+
+/**
+ * Helper class for the JOSM system to communicate with the plugin.
+ *
+ * This class should be of no interest for sole plugin writer.
+ *
+ * @author Immanuel.Scholz
+ */
+public class PluginProxy extends Plugin {
+
+	public final Object plugin;
+	public final PluginInformation info;
+
+	public PluginProxy(Object plugin, PluginInformation info) {
+		this.plugin = plugin;
+		this.info = info;
+    }
+
+	@Override public void mapFrameInitialized(MapFrame oldFrame, MapFrame newFrame) {
+		try {
+	        plugin.getClass().getMethod("mapFrameInitialized", MapFrame.class, MapFrame.class).invoke(plugin, oldFrame, newFrame);
+        } catch (NoSuchMethodException e) {
+        } catch (Exception e) {
+        	throw new PluginException(this, info.name, e);
+        }
+    }
+
+	@Override public PreferenceSetting getPreferenceSetting() {
+		try {
+			return (PreferenceSetting)plugin.getClass().getMethod("getPreferenceSetting").invoke(plugin);
+		} catch (NoSuchMethodException e) {
+			return null;
+		} catch (Exception e) {
+			throw new PluginException(this, info.name, e);
+		}
+    }
+	
+	@Override public void addDownloadSelection(List<DownloadSelection> list) {
+		try {
+			plugin.getClass().getMethod("addDownloadSelection", List.class).invoke(plugin, list);
+		} catch (NoSuchMethodException e) {
+			// ignore
+		} catch (Exception e) {
+			throw new PluginException(this, info.name, e);
+		}
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/tools/AutoCompleteComboBox.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/AutoCompleteComboBox.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/tools/AutoCompleteComboBox.java	(revision 321)
@@ -0,0 +1,91 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.tools;
+
+import java.util.Collection;
+
+import javax.swing.ComboBoxModel;
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.JComboBox;
+import javax.swing.text.AttributeSet;
+import javax.swing.text.BadLocationException;
+import javax.swing.text.JTextComponent;
+import javax.swing.text.PlainDocument;
+
+/**
+ * @author guilhem.bonnefille@gmail.com
+ */
+public class AutoCompleteComboBox extends JComboBox {
+
+	/**
+	 * Auto-complete a JComboBox.
+	 * 
+	 * Inspired by http://www.orbital-computer.de/JComboBox/
+	 */
+	private class AutoCompleteComboBoxDocument extends PlainDocument {
+		private JComboBox comboBox;
+		private boolean selecting = false;
+
+		public AutoCompleteComboBoxDocument(final JComboBox comboBox) {
+			this.comboBox = comboBox;
+		}
+
+		@Override public void remove(int offs, int len) throws BadLocationException {
+			if (selecting)
+				return;
+			super.remove(offs, len);
+		}
+
+		@Override public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
+			super.insertString(offs, str, a);
+
+			// return immediately when selecting an item
+			// Nota: this is done after calling super method because we need
+			// ActionListener informed
+			if (selecting)
+				return;
+
+			// lookup and select a matching item
+			Object item = lookupItem(getText(0, getLength()));
+			if (item != null) {
+				// remove all text and insert the completed string
+				super.remove(0, getLength());
+				super.insertString(0, item.toString(), a);
+				// select the completed part
+				JTextComponent editor = (JTextComponent)comboBox.getEditor().getEditorComponent();
+				editor.setSelectionStart(offs + str.length());
+				editor.setSelectionEnd(getLength());
+			}
+			setSelectedItem(item);
+		}
+
+		private void setSelectedItem(Object item) {
+			selecting = true;
+			comboBox.setSelectedItem(item);
+			selecting = false;
+		}
+
+		private Object lookupItem(String pattern) {
+			ComboBoxModel model = comboBox.getModel();
+			for (int i = 0, n = model.getSize(); i < n; i++) {
+				Object currentItem = model.getElementAt(i);
+				if (currentItem.toString().startsWith(pattern))
+					return currentItem;
+			}
+			return null;
+		}
+	}
+
+	public AutoCompleteComboBox() {
+		JTextComponent editor = (JTextComponent) this.getEditor().getEditorComponent();
+		editor.setDocument(new AutoCompleteComboBoxDocument(this));
+	}
+
+	public void setPossibleItems(Collection<String> elems) {
+		Object oldValue = this.getSelectedItem();
+		DefaultComboBoxModel model = (DefaultComboBoxModel)this.getModel();
+		model.removeAllElements();
+		for (String elem : elems) model.addElement(elem);
+		this.setSelectedItem(oldValue);
+		this.getEditor().selectAll();
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/tools/Base64.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/Base64.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/tools/Base64.java	(revision 321)
@@ -0,0 +1,20 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.tools;
+
+public class Base64 {
+
+	private static String enc = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+
+	public static String encode(String s) {
+		StringBuilder out = new StringBuilder();
+		for (int i = 0; i < (s.length()+2)/3; ++i) {
+			int l = Math.min(3, s.length()-i*3);
+			String buf = s.substring(i*3, i*3+l);
+            out.append(enc.charAt(buf.charAt(0)>>2));
+            out.append(enc.charAt((buf.charAt(0) & 0x03) << 4 | (l==1?0:(buf.charAt(1) & 0xf0) >> 4)));
+            out.append(l>1?enc.charAt((buf.charAt(1) & 0x0f) << 2 | (l==2?0:(buf.charAt(2) & 0xc0) >> 6)):'=');
+            out.append(l>2?enc.charAt(buf.charAt(2) & 0x3f):'=');
+		}
+		return out.toString();
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java	(revision 321)
@@ -0,0 +1,188 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.tools;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.GridBagLayout;
+import java.awt.Toolkit;
+import java.awt.datatransfer.Clipboard;
+import java.awt.datatransfer.ClipboardOwner;
+import java.awt.datatransfer.StringSelection;
+import java.awt.datatransfer.Transferable;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.net.URL;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.LinkedList;
+
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.plugins.PluginException;
+import org.openstreetmap.josm.plugins.PluginProxy;
+
+/**
+ * An exception handler, that ask the user to send a bug report.
+ *
+ * @author imi
+ */
+public final class BugReportExceptionHandler implements Thread.UncaughtExceptionHandler {
+
+	public void uncaughtException(Thread t, Throwable e) {
+		e.printStackTrace();
+		if (Main.parent != null) {
+			if (e instanceof OutOfMemoryError) {
+				// do not translate the string, as translation may raise an exception
+				JOptionPane.showMessageDialog(Main.parent, "You are out of memory. Strange things may happen.\nPlease restart JOSM and load smaller data sets.");
+				return;
+			}
+
+			PluginProxy plugin = null;
+
+			// Check for an explicit problem when calling a plugin function
+			if (e instanceof PluginException)
+				plugin = ((PluginException)e).plugin;
+			
+			if (plugin == null)
+				plugin = guessPlugin(e);
+
+			if (plugin != null) {
+				int answer = JOptionPane.showConfirmDialog(
+						Main.parent, 
+						tr("An unexpected exception occurred, that may come from in the ''{0}'' plugin.", plugin.info.name)+"\n"+
+						(plugin.info.author != null ? tr("According to the information within the plugin, the author is {0}.", plugin.info.author) : "")+"\n"+
+						tr("Should the plugin be disabled?"),
+						tr("Disable plugin"),
+						JOptionPane.YES_NO_OPTION);
+				if (answer == JOptionPane.OK_OPTION) {
+					LinkedList<String> plugins = new LinkedList<String>(Arrays.asList(Main.pref.get("plugins").split(",")));
+					if (plugins.contains(plugin.info.name)) {
+						while (plugins.remove(plugin.info.name)) {}
+						String p = "";
+						for (String s : plugins)
+							p += ","+s;
+						if (p.length() > 0)
+							p = p.substring(1);
+						Main.pref.put("plugins", p);
+						JOptionPane.showMessageDialog(Main.parent, tr("The plugin has been removed from the configuration. Please restart JOSM to unload the plugin."));
+					} else {
+						JOptionPane.showMessageDialog(Main.parent, tr("The plugin could not be removed. Please tell the people you got JOSM from about the problem."));
+					}
+					return;
+				}
+			}
+
+			Object[] options = new String[]{tr("Do nothing"), tr("Report Bug")};
+			int answer = JOptionPane.showOptionDialog(Main.parent, tr("An unexpected exception occurred.\n\n" +
+					"This is always a coding error. If you are running the latest\n" +
+			"version of JOSM, please consider being kind and file a bug report."),
+			tr("Unexpected Exception"), JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE,
+			null, options, options[0]);
+			if (answer == 1) {
+				try {
+					StringWriter stack = new StringWriter();
+					e.printStackTrace(new PrintWriter(stack));
+
+					URL revUrl = Main.class.getResource("/REVISION");
+					StringBuilder sb = new StringBuilder();
+					if (revUrl == null) {
+						sb.append("Development version. Unknown revision.");
+						File f = new File("org/openstreetmap/josm/Main.class");
+						if (!f.exists())
+							f = new File("bin/org/openstreetmap/josm/Main.class");
+						if (!f.exists())
+							f = new File("build/org/openstreetmap/josm/Main.class");
+						if (f.exists()) {
+							DateFormat sdf = SimpleDateFormat.getDateTimeInstance();
+							sb.append("\nMain.class build on "+sdf.format(new Date(f.lastModified())));
+							sb.append("\n");
+						}
+					} else {
+						BufferedReader in = new BufferedReader(new InputStreamReader(revUrl.openStream()));
+						for (String line = in.readLine(); line != null; line = in.readLine()) {
+							sb.append(line);
+							sb.append('\n');
+						}
+					}
+					sb.append("\n"+stack.getBuffer().toString());
+
+					JPanel p = new JPanel(new GridBagLayout());
+					p.add(new JLabel(tr("Please report a ticket at http://josm.openstreetmap.de/newticket, including your steps to get to\n" +
+							            "the error and be sure to include the following information")), GBC.eol());
+					try {
+	                    Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(sb.toString()), new ClipboardOwner(){
+	                    	public void lostOwnership(Clipboard clipboard, Transferable contents) {}
+	                    });
+	                    p.add(new JLabel(tr("The text has already been copied to your clipboard.")), GBC.eop());
+                    } catch (RuntimeException x) {
+                    }
+
+					JTextArea info = new JTextArea(sb.toString(), 20, 60);
+					info.setCaretPosition(0);
+					info.setEditable(false);
+					p.add(new JScrollPane(info), GBC.eop());
+
+					JOptionPane.showMessageDialog(Main.parent, p);
+				} catch (Exception e1) {
+					e1.printStackTrace();
+				}
+			}
+		}
+	}
+
+	private PluginProxy guessPlugin(Throwable e) {
+		String name = guessPluginName(e);
+		for (PluginProxy p : Main.plugins)
+			if (p.info.name.equals(name))
+				return p;
+		return null;
+	}
+
+	/**
+	 * Analyze the stack of the argument and return a name of a plugin, if
+	 * some known problem pattern has been found or <code>null</code>, if
+	 * the stack does not contain plugin-code.
+	 * 
+	 * Note: This heuristic is not meant as discrimination against specific
+	 * plugins, but only to stop the flood of similar bug reports about plugins.
+	 * Of course, plugin writers are free to install their own version of 
+	 * an exception handler with their email address listed to receive 
+	 * bug reports ;-). 
+	 */
+	private String guessPluginName(Throwable e) {
+		for (StackTraceElement element : e.getStackTrace()) {
+			String c = element.getClassName();
+			
+			if (c.contains("wmsplugin.") || c.contains(".WMSLayer"))
+				return "wmsplugin";
+			if (c.contains("landsat.") || c.contains(".LandsatLayer"))
+				return "landsat";
+			if (c.contains("livegps."))
+				return "livegps";
+			if (c.contains("mappaint."))
+				return "mappaint";
+			if (c.contains("annotationtester."))
+				return "annotation-tester";
+			if (c.startsWith("UtilsPlugin."))
+				return "UtilsPlugin";
+
+			if (c.startsWith("org.openstreetmap.josm.plugins.")) {
+				String p = c.substring("org.openstreetmap.josm.plugins.".length());
+				if (p.indexOf('.') != -1 && p.matches("[a-z].*")) {
+					return p.substring(0,p.indexOf('.'));
+				}
+			}
+		}
+		return null;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/tools/ColorHelper.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/ColorHelper.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/tools/ColorHelper.java	(revision 321)
@@ -0,0 +1,34 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.tools;
+
+import java.awt.Color;
+
+/**
+ * Helper to convert from color to html string and back
+ */
+public class ColorHelper {
+	
+	public static Color html2color(String html) {
+		if (html.length() > 0 && html.charAt(0) == '#')
+			html = html.substring(1);
+		if (html.length() != 6)
+			return null;
+		try {
+			return new Color(
+					Integer.parseInt(html.substring(0,2),16),
+					Integer.parseInt(html.substring(2,4),16),
+					Integer.parseInt(html.substring(4,6),16));
+		} catch (NumberFormatException e) {
+			return null;
+		}		
+	}
+
+	private static String int2hex(int i) {
+		String s = Integer.toHexString(i / 16) + Integer.toHexString(i % 16);
+		return s.toUpperCase();
+	}
+	
+	public static String color2html(Color col) {
+		return "#"+int2hex(col.getRed())+int2hex(col.getGreen())+int2hex(col.getBlue());
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/tools/DateParser.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/DateParser.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/tools/DateParser.java	(revision 321)
@@ -0,0 +1,45 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.tools;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * Tries to parse a date as good as it can.
+ * 
+ * @author Immanuel.Scholz
+ */
+public class DateParser {
+
+	private static final String[] formats = {
+		"yyyy-MM-dd'T'HH:mm:ss'Z'",
+		"yyyy-MM-dd'T'HH:mm:ssZ",
+		"yyyy-MM-dd'T'HH:mm:ss",
+		"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
+		"yyyy-MM-dd'T'HH:mm:ss.SSSZ",
+		"yyyy-MM-dd HH:mm:ss",
+		"MM/dd/yyyy HH:mm:ss",
+		"MM/dd/yyyy'T'HH:mm:ss.SSS'Z'",
+		"MM/dd/yyyy'T'HH:mm:ss.SSSZ",
+		"MM/dd/yyyy'T'HH:mm:ss.SSS",
+		"MM/dd/yyyy'T'HH:mm:ssZ",
+		"MM/dd/yyyy'T'HH:mm:ss",
+		"yyyy:MM:dd HH:mm:ss", // unfcklvble, but I have seen this...
+	};
+	
+	public static Date parse(String d) throws ParseException {
+		// first try to fix ruby's broken xmlschema - format
+		Matcher m = Pattern.compile("(....-..-..T..:..:..[+-]..):(..)").matcher(d);
+		if (m.matches())
+			d = m.group(1) + m.group(2);
+
+		for (String parse : formats) {
+			SimpleDateFormat sdf = new SimpleDateFormat(parse);
+			try {return sdf.parse(d);} catch (ParseException pe) {}
+		}
+		throw new ParseException("", 0);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/tools/Destroyable.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/Destroyable.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/tools/Destroyable.java	(revision 321)
@@ -0,0 +1,17 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.tools;
+
+/**
+ * Some objects like layers (when they are removed) or the whole map frame (when the last layer has
+ * been removed) have an definite set of actions to execute. This is the "destructor" interface called
+ * on those objects.
+ * 
+ * @author immanuel.scholz
+ */
+public interface Destroyable {
+
+	/**
+	 * Called when the object has been destroyed.
+	 */
+	public void destroy();
+}
Index: /trunk/src/org/openstreetmap/josm/tools/DontShowAgainInfo.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/DontShowAgainInfo.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/tools/DontShowAgainInfo.java	(revision 321)
@@ -0,0 +1,36 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.tools;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.Container;
+import java.awt.GridBagLayout;
+
+import javax.swing.JCheckBox;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+
+import org.openstreetmap.josm.Main;
+
+public class DontShowAgainInfo {
+
+	public static boolean show(String prefKey, String msg) {
+		return show(prefKey, new JLabel(msg));
+	}
+
+	public static boolean show(String prefKey, Container msg) {
+		if (!Main.pref.getBoolean("message."+prefKey)) {
+			JCheckBox dontshowagain = new JCheckBox(tr("Do not show again"));
+			dontshowagain.setSelected(Main.pref.getBoolean("message."+prefKey, true));
+			JPanel all = new JPanel(new GridBagLayout());
+			all.add(msg, GBC.eop());
+			all.add(dontshowagain, GBC.eol());
+			int answer = JOptionPane.showConfirmDialog(Main.parent, all, tr("Information"), JOptionPane.OK_CANCEL_OPTION);
+			if (answer != JOptionPane.OK_OPTION)
+				return false;
+			Main.pref.put("message."+prefKey, dontshowagain.isSelected());
+		}
+		return true;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/tools/ExifReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/ExifReader.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/tools/ExifReader.java	(revision 321)
@@ -0,0 +1,40 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.tools;
+
+import java.io.File;
+import java.text.ParseException;
+import java.util.Date;
+import java.util.Iterator;
+
+import com.drew.imaging.jpeg.JpegMetadataReader;
+import com.drew.metadata.Directory;
+import com.drew.metadata.Metadata;
+import com.drew.metadata.Tag;
+
+/**
+ * Read out exif file information from a jpeg file
+ * @author Imi
+ */
+public class ExifReader {
+
+	@SuppressWarnings("unchecked") public static Date readTime(File filename) throws ParseException {
+		Date date = null;
+		try {
+	        Metadata metadata = JpegMetadataReader.readMetadata(filename);
+	        for (Iterator<Directory> dirIt = metadata.getDirectoryIterator(); dirIt.hasNext();) {
+	            for (Iterator<Tag> tagIt = dirIt.next().getTagIterator(); tagIt.hasNext();) {
+	                Tag tag = tagIt.next();
+	                if (tag.getTagType() == 0x9003)
+	                	return DateParser.parse(tag.getDescription());
+	                if (tag.getTagType() == 0x132 || tag.getTagType() == 0x9004)
+	                	date = DateParser.parse(tag.getDescription());
+	            }
+	        }
+		} catch (ParseException e) {
+			throw e;
+        } catch (Exception e) {
+	        e.printStackTrace();
+        }
+		return date;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/tools/GBC.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/GBC.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/tools/GBC.java	(revision 321)
@@ -0,0 +1,110 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.tools;
+
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.GridBagConstraints;
+import java.awt.Insets;
+
+import javax.swing.Box;
+
+/**
+ * A wrapper for GridBagConstraints which has sane default static creators and
+ * member functions to chain calling.
+ * 
+ * @author imi
+ */
+public class GBC extends GridBagConstraints {
+
+	/**
+	 * Use public static creator functions to create an GBC.
+	 */
+	private GBC() {}
+
+	/**
+	 * Create a standard constraint (which is not the last).
+	 * @return A standard constraint with no filling.
+	 */
+	public static GBC std() {
+		GBC c = new GBC();
+		c.anchor = WEST;
+		return c;
+	}
+
+	/**
+	 * Create the constraint for the last elements on a line.
+	 * @return A constraint which indicates the last item on a line.
+	 */
+	public static GBC eol() {
+		GBC c = std();
+		c.gridwidth = REMAINDER;
+		return c;
+	}
+
+	/**
+	 * Create the constraint for the last elements on a line and on a paragraph.
+	 * This is merely a shortcut for eol().insets(0,0,0,10)
+	 * @return A constraint which indicates the last item on a line.
+	 */
+	public static GBC eop() {
+		return eol().insets(0,0,0,10);
+	}
+
+	/**
+	 * Try to fill both, horizontal and vertical
+	 * @return This constraint for chaining.
+	 */
+	public GBC fill() {
+		return fill(BOTH);
+	}
+
+	/**
+	 * Set fill to the given value
+	 * @param value The filling value, either NONE, HORIZONTAL, VERTICAL or BOTH
+	 * @return This constraint for chaining.
+	 */
+	public GBC fill(int value) {
+		fill = value;
+		if (value == HORIZONTAL || value == BOTH)
+			weightx = 1.0;
+		if (value == VERTICAL || value == BOTH)
+			weighty = 1.0;
+		return this;
+	}
+
+	/**
+	 * Set the anchor of this GBC to a.
+	 * @param a The new anchor, e.g. GBC.CENTER or GBC.EAST.
+	 * @return This constraint for chaining.
+	 */
+	public GBC anchor(int a) {
+		anchor = a;
+		return this;
+	}
+
+	/**
+	 * Adds insets to this GBC.
+	 * @param left		The left space of the insets
+	 * @param top		The top space of the insets
+	 * @param right		The right space of the insets
+	 * @param bottom	The bottom space of the insets
+	 * @return This constraint for chaining.
+	 */
+	public GBC insets(int left, int top, int right, int bottom) {
+		insets = new Insets(top, left, bottom, right);
+		return this;
+	}
+
+	/**
+	 * This is a helper to easily create a glue with a minimum default value.
+	 * @param x If higher than 0, this will be a horizontal glue with x as minimum
+	 * 		horizontal strut.
+	 * @param y If higher than 0, this will be a vertical glue with y as minimum
+	 * 		vertical strut.
+	 */
+	public static Component glue(int x, int y) {
+		short maxx = x > 0 ? Short.MAX_VALUE : 0;
+		short maxy = y > 0 ? Short.MAX_VALUE : 0;
+		return new Box.Filler(new Dimension(x,y), new Dimension(x,y), new Dimension(maxx,maxy));
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/tools/I18n.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 321)
@@ -0,0 +1,41 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.tools;
+
+import java.text.MessageFormat;
+
+/**
+ * Internationalisation support.
+ * 
+ * @author Immanuel.Scholz
+ */
+public class I18n {
+	/**
+	 * Set by MainApplication. Changes here later will probably mess up everything, because
+	 * many strings are already loaded.
+	 */
+	public static org.xnap.commons.i18n.I18n i18n;
+
+	public static String tr(String text, Object... objects) {
+		if (i18n == null)
+			return MessageFormat.format(text, objects);
+		return i18n.tr(text, objects);
+	}
+
+	public static String tr(String text) {
+		if (i18n == null)
+			return text;
+		return i18n.tr(text);
+	}
+
+	public static String trn(String text, String pluralText, long n, Object... objects) {
+		if (i18n == null)
+			return n == 1 ? tr(text, objects) : tr(pluralText, objects);
+			return i18n.trn(text, pluralText, n, objects);
+	}
+
+	public static String trn(String text, String pluralText, long n) {
+		if (i18n == null)
+			return n == 1 ? tr(text) : tr(pluralText);
+			return i18n.trn(text, pluralText, n);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/tools/ImageProvider.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/ImageProvider.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/tools/ImageProvider.java	(revision 321)
@@ -0,0 +1,171 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.tools;
+
+import java.awt.Cursor;
+import java.awt.Graphics;
+import java.awt.GraphicsConfiguration;
+import java.awt.GraphicsEnvironment;
+import java.awt.Image;
+import java.awt.Point;
+import java.awt.Toolkit;
+import java.awt.Transparency;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import javax.swing.Icon;
+import javax.swing.ImageIcon;
+
+import org.openstreetmap.josm.Main;
+
+/**
+ * Helperclass to support the application with images.
+ * @author imi
+ */
+public class ImageProvider {
+
+	/**
+	 * Position of an overlay icon
+	 * @author imi
+	 */
+	public static enum OverlayPosition {NORTHWEST, NORTHEAST, SOUTHWEST, SOUTHEAST}
+
+	/**
+	 * The icon cache
+	 */
+	private static Map<URL, Image> cache = new HashMap<URL, Image>();
+
+	/**
+	 * Add here all ClassLoader whose ressource should be searched.
+	 * Plugin's class loaders are added by main.
+	 */
+	public static final List<ClassLoader> sources = new LinkedList<ClassLoader>();
+
+	/**
+	 * Return an image from the specified location.
+	 *
+	 * @param subdir	The position of the directory, e.g. "layer"
+	 * @param name		The icons name (without the ending of ".png")
+	 * @return The requested Image.
+	 */
+	public static ImageIcon get(String subdir, String name) {
+		ImageIcon icon = getIfAvailable(subdir, name);
+		if (icon == null) {
+			String ext = name.indexOf('.') != -1 ? "" : ".png";
+			throw new NullPointerException("/images/"+subdir+name+ext+" not found");
+		}
+		return icon;
+	}
+
+	/**
+	 * Like {@link #get(String)}, but does not throw and return <code>null</code>
+	 * in case of nothing is found. Use this, if the image to retrieve is optional.
+	 */
+	public static ImageIcon getIfAvailable(String subdir, String name) {
+		if (name == null)
+			return null;
+		if (subdir == null)
+			subdir = "";
+		else if (!subdir.equals(""))
+			subdir += "/";
+		String ext = name.indexOf('.') != -1 ? "" : ".png";
+
+		URL path = getImageUrl(subdir+name+ext);
+		if (path == null)
+			return null;
+		
+		Image img = cache.get(path);
+		if (img == null) {
+			img = Toolkit.getDefaultToolkit().createImage(path);
+			cache.put(path, img);
+		}
+		return new ImageIcon(img);
+	}
+
+	private static URL getImageUrl(String imageName) {
+	    URL path = null;
+	    // Try user-preference directory first
+    	try {
+    		if (new File(Main.pref.getPreferencesDir()+"images/"+imageName).exists())
+    			return new URL("file", "", Main.pref.getPreferencesDir()+"images/"+imageName);
+    	} catch (MalformedURLException e) {
+    	}
+
+	    // Try plugins and josm classloader
+	    for (ClassLoader source : sources)
+			if ((path = source.getResource("images/"+imageName)) != null)
+				return path;
+
+	    // Try all other ressource directories
+	    for (String location : Main.pref.getAllPossiblePreferenceDirs()) {
+	    	try {
+	    		if (new File(location+"images/"+imageName).exists())
+	    			return new URL("file", "", location+"images/"+imageName);
+	    	} catch (MalformedURLException e) {
+	    	}
+	    }
+	    return null;
+    }
+
+	/**
+	 * Shortcut for get("", name);
+	 */
+	public static ImageIcon get(String name) {
+		return get("", name);
+	}
+
+	public static Cursor getCursor(String name, String overlay) {
+		ImageIcon img = get("cursor",name);
+		if (overlay != null)
+			img = overlay(img, "cursor/modifier/"+overlay, OverlayPosition.SOUTHEAST);
+		Cursor c = Toolkit.getDefaultToolkit().createCustomCursor(img.getImage(),
+				name.equals("crosshair") ? new Point(10,10) : new Point(3,2), "Cursor");
+		return c;
+	}
+
+	/**
+	 * @return an icon that represent the overlay of the two given icons. The
+	 * second icon is layed on the first relative to the given position.
+	 */
+	public static ImageIcon overlay(Icon ground, String overlayImage, OverlayPosition pos) {
+		GraphicsConfiguration conf = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration();
+		int w = ground.getIconWidth();
+		int h = ground.getIconHeight();
+		ImageIcon overlay = ImageProvider.get(overlayImage);
+		int wo = overlay.getIconWidth();
+		int ho = overlay.getIconHeight();
+		BufferedImage img = conf.createCompatibleImage(w,h, Transparency.TRANSLUCENT);
+		Graphics g = img.createGraphics();
+		ground.paintIcon(null, g, 0, 0);
+		int x = 0, y = 0;
+		switch (pos) {
+		case NORTHWEST:
+			x = 0;
+			y = 0;
+			break;
+		case NORTHEAST:
+			x = w-wo;
+			y = 0;
+			break;
+		case SOUTHWEST:
+			x = 0;
+			y = h-ho;
+			break;
+		case SOUTHEAST:
+			x = w-wo;
+			y = h-ho;
+			break;
+		}
+		overlay.paintIcon(null, g, x, y);
+		return new ImageIcon(img);
+	}
+
+	static {
+		sources.add(ClassLoader.getSystemClassLoader());
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/tools/OpenBrowser.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/OpenBrowser.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/tools/OpenBrowser.java	(revision 321)
@@ -0,0 +1,68 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.tools;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import javax.swing.JApplet;
+
+import org.openstreetmap.josm.Main;
+
+/**
+ * Helper to open platform web browser on different platforms
+ * @author Imi
+ */
+public class OpenBrowser {
+
+	/**
+	 * @return <code>null</code> for success or a string in case of an error.
+	 */
+	public static String displayUrl(String url) {
+		if (Main.applet) {
+			try {
+				JApplet applet = (JApplet) Main.parent;
+				applet.getAppletContext().showDocument(new URL(url));
+				return null;
+			} catch (MalformedURLException mue) {
+				return mue.getMessage();
+			}
+		}
+
+		String os = System.getProperty("os.name");
+		if (os == null)
+			return "unknown operating system";
+		try {
+			if (os != null && os.startsWith("Windows"))
+				windows(url);
+			else if (os.equals("Linux") || os.equals("Solaris") || os.equals("SunOS") || os.equals("AIX") || os.equals("FreeBSD"))
+				linux(url);
+			else if (os.equals("Mac OS") || os.equals("Mac OS X"))
+				mac(url);
+			else
+				return "unknown operating system";
+		} catch (IOException e) {
+			return e.getMessage();
+		}
+		return null;
+	}
+
+	private static void windows(String url) throws IOException {
+		Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + url);
+	}
+
+	private static void linux(String url) {
+		String[] programs = {"gnome-open", "kfmclient openURL", "firefox"};
+		for (String program : programs) {
+			try {
+				Runtime.getRuntime().exec(program+" "+url);
+				return;
+			} catch (IOException e) {
+            }
+		}
+	}
+
+	private static void mac(String url) throws IOException {
+		Runtime.getRuntime().exec("open " + url);
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/tools/ShortCutLabel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/ShortCutLabel.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/tools/ShortCutLabel.java	(revision 321)
@@ -0,0 +1,28 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.tools;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.KeyEvent;
+
+
+public class ShortCutLabel {
+	public static String name(int shortCut, int modifiers) {
+		if (shortCut == 0 && modifiers == 0)
+			return "";
+		String s = "";
+		if ((modifiers & KeyEvent.CTRL_MASK) != 0 || (modifiers & KeyEvent.CTRL_DOWN_MASK) != 0)
+			s += tr("Ctrl-");
+		if ((modifiers & KeyEvent.ALT_MASK) != 0 || (modifiers & KeyEvent.ALT_DOWN_MASK) != 0)
+			s += tr("Alt-");
+		if ((modifiers & KeyEvent.ALT_GRAPH_MASK) != 0 || (modifiers & KeyEvent.ALT_GRAPH_DOWN_MASK) != 0)
+			s += tr("AltGr-");
+		if ((modifiers & KeyEvent.SHIFT_MASK) != 0 || (modifiers & KeyEvent.SHIFT_DOWN_MASK) != 0)
+			s += tr("Shift-");
+		if (shortCut >= KeyEvent.VK_F1 && shortCut <= KeyEvent.VK_F12)
+			s += "F"+(shortCut-KeyEvent.VK_F1+1);
+		else
+			s += Character.toUpperCase((char)shortCut);
+		return s;
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/tools/UrlLabel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/UrlLabel.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/tools/UrlLabel.java	(revision 321)
@@ -0,0 +1,35 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.tools;
+
+import javax.swing.JEditorPane;
+import javax.swing.event.HyperlinkEvent;
+import javax.swing.event.HyperlinkListener;
+
+/**
+ * Label that contains a clickable link.
+ * @author Imi
+ */
+public class UrlLabel extends JEditorPane implements HyperlinkListener {
+
+	private final String url;
+
+	public UrlLabel(String url) {
+		this (url, url);
+	}
+
+	public UrlLabel(String url, String description) {
+		this.url = url;
+		setContentType("text/html");
+		setText("<html><a href=\""+url+"\">"+description+"</a></html>");
+		setToolTipText(url);
+		setEditable(false);
+		setOpaque(false);
+		addHyperlinkListener(this);
+	}
+
+	public void hyperlinkUpdate(HyperlinkEvent e) {
+		if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
+			OpenBrowser.displayUrl(url);
+		}
+	}
+}
Index: /trunk/src/org/openstreetmap/josm/tools/WikiReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/WikiReader.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/tools/WikiReader.java	(revision 321)
@@ -0,0 +1,75 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.tools;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.URL;
+
+/**
+ * Read a trac-wiki page.
+ *
+ * @author imi
+ */
+public class WikiReader {
+
+	public static final String JOSM_EXTERN = "http://josm-extern.";
+	private final String baseurl;
+
+	public WikiReader(String baseurl) {
+		this.baseurl = baseurl;
+    }
+
+	/**
+	 * Read the page specified by the url and return the content.
+	 *
+	 * If the url is within the baseurl path, parse it as an trac wikipage and
+	 * replace relative pathes etc..
+	 *
+	 * @return Either the string of the content of the wiki page.
+	 * @throws IOException Throws, if the page could not be loaded.
+	 */
+	public String read(String url) throws IOException {
+        BufferedReader in = new BufferedReader(new InputStreamReader(new URL(url).openStream()));
+        if (url.startsWith(baseurl))
+        	return readFromTrac(in, url);
+        return readNormal(in);
+	}
+
+	private String readNormal(BufferedReader in) throws IOException {
+		StringBuilder b = new StringBuilder("<html>");
+		for (String line = in.readLine(); line != null; line = in.readLine()) {
+			line = adjustText(line);
+			b.append(line);
+			b.append("\n");
+		}
+		return b.toString();
+    }
+
+	private String readFromTrac(BufferedReader in, String url) throws IOException {
+        boolean inside = false;
+        StringBuilder b = new StringBuilder("<html>");
+        for (String line = in.readLine(); line != null; line = in.readLine()) {
+        	if (line.contains("<div id=\"searchable\">"))
+        		inside = true;
+        	else if (line.contains("<div class=\"buttons\">"))
+        		inside = false;
+        	if (inside) {
+        		line = line.replaceAll("<img src=\"/", "<img src=\""+baseurl+"/");
+        		line = line.replaceAll("href=\"/", "href=\""+baseurl+"/");
+        		if (!line.contains("$"))
+        			line = line.replaceAll("<p>Describe \"([^\"]+)\" here</p>", "<p>Describe \"$1\" <a href=\""+JOSM_EXTERN+url.substring(7)+"\">here</a></p>");
+        		line = adjustText(line);
+        		b.append(line);
+        		b.append("\n");
+        	}
+        }
+        b.append("</html>");
+        return b.toString();
+    }
+
+	private String adjustText(String text) {
+	    text = text.replaceAll(" />", ">");
+	    return text;
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/tools/XmlObjectParser.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/XmlObjectParser.java	(revision 321)
+++ /trunk/src/org/openstreetmap/josm/tools/XmlObjectParser.java	(revision 321)
@@ -0,0 +1,255 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.tools;
+
+import java.io.Reader;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Stack;
+import java.util.concurrent.ArrayBlockingQueue;
+import java.util.concurrent.BlockingQueue;
+
+import javax.xml.parsers.SAXParserFactory;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+/**
+ * An helper class that reads from a XML stream into specific objects.
+ *
+ * @author Imi
+ */
+public class XmlObjectParser implements Iterable<Object> {
+
+	public static class Uniform<T> implements Iterable<T>{
+		private Iterator<Object> iterator;
+		/**
+		 * @param klass This has to be specified since generics are ereased from
+		 * class files so the JVM cannot deduce T itself.
+		 */
+		public Uniform(Reader input, String tagname, Class<T> klass) {
+			XmlObjectParser parser = new XmlObjectParser();
+			parser.map(tagname, klass);
+			parser.start(input);
+			iterator = parser.iterator();
+		}
+		public Iterator<T> iterator() {
+			return new Iterator<T>(){
+				public boolean hasNext() {return iterator.hasNext();}
+				@SuppressWarnings("unchecked") public T next() {return (T)iterator.next();}
+				public void remove() {iterator.remove();}
+			};
+		}
+	}
+
+	private class Parser extends DefaultHandler {
+		Stack<Object> current = new Stack<Object>();
+		String characters = "";
+		@Override public void startElement(String ns, String lname, String qname, Attributes a) throws SAXException {
+			if (mapping.containsKey(qname)) {
+				Class<?> klass = mapping.get(qname).klass;
+				try {
+					current.push(klass.newInstance());
+				} catch (Exception e) {
+					throw new SAXException(e);
+				}
+				for (int i = 0; i < a.getLength(); ++i)
+					setValue(a.getQName(i), a.getValue(i));
+				if (mapping.get(qname).onStart)
+					report();
+			}
+		}
+		@Override public void endElement(String ns, String lname, String qname) throws SAXException {
+			if (mapping.containsKey(qname) && !mapping.get(qname).onStart)
+				report();
+			else if (characters != null && !current.isEmpty()) {
+				setValue(qname, characters);
+				characters = "";
+			}
+		}
+		@Override public void characters(char[] ch, int start, int length) {
+			String s = new String(ch, start, length);
+			characters += s;
+		}
+
+		private void report() {
+			try {
+				queue.put(current.pop());
+			} catch (InterruptedException e) {
+			}
+			characters = "";
+		}
+
+		private Object getValueForClass(Class<?> klass, String value) {
+			if (klass == Boolean.TYPE)
+				return parseBoolean(value);
+			else if (klass == Integer.TYPE || klass == Long.TYPE)
+				return Long.parseLong(value);
+			else if (klass == Float.TYPE || klass == Double.TYPE)
+				return Double.parseDouble(value);
+			return value;
+		}
+		
+		private void setValue(String fieldName, String value) throws SAXException {
+			if (fieldName.equals("class") || fieldName.equals("default") || fieldName.equals("throw") || fieldName.equals("new") || fieldName.equals("null"))
+				fieldName += "_";
+			try {
+				Object c = current.peek();
+				Field f = null;
+				try {
+	                f = c.getClass().getField(fieldName);
+                } catch (NoSuchFieldException e) {
+                }
+				if (f != null && Modifier.isPublic(f.getModifiers()))
+					f.set(c, getValueForClass(f.getType(), value));
+				else {
+					fieldName = "set" + fieldName.substring(0,1).toUpperCase() + fieldName.substring(1);
+					Method[] methods = c.getClass().getDeclaredMethods();
+					for (Method m : methods) {
+						if (m.getName().equals(fieldName) && m.getParameterTypes().length == 1) {
+							m.invoke(c, new Object[]{getValueForClass(m.getParameterTypes()[0], value)});
+							return;
+						}
+					}
+				}
+			} catch (Exception e) {
+				e.printStackTrace(); // SAXException does not dump inner exceptions.
+				throw new SAXException(e);
+			}
+		}
+		private boolean parseBoolean(String s) {
+			return s != null && 
+				!s.equals("0") && 
+				!s.startsWith("off") && 
+				!s.startsWith("false") &&
+				!s.startsWith("no");
+		}
+	}
+
+	private static class Entry {
+		Class<?> klass;
+		boolean onStart;
+		public Entry(Class<?> klass, boolean onStart) {
+			super();
+			this.klass = klass;
+			this.onStart = onStart;
+		}
+	}
+
+	private Map<String, Entry> mapping = new HashMap<String, Entry>();
+	private Parser parser;
+	
+	/**
+	 * The queue of already parsed items from the parsing thread.
+	 */
+	private BlockingQueue<Object> queue = new ArrayBlockingQueue<Object>(10);
+
+	/**
+	 * This stores one item retrieved from the queue to give hasNext a chance.
+	 * So this is also the object that will be returned on the next call to next().
+	 */
+	private Object lookAhead = null;
+	
+	/**
+	 * This object represent the end of the stream (null is not allowed as
+	 * member in class Queue).
+	 */
+	private Object EOS = new Object();
+
+	public XmlObjectParser() {
+		parser = new Parser();
+	}
+
+	public Iterable<Object> start(final Reader in) {
+		new Thread(){
+			@Override public void run() {
+				try {
+			        SAXParserFactory.newInstance().newSAXParser().parse(new InputSource(in), parser);
+				} catch (Exception e) {
+					try {
+						queue.put(e);
+					} catch (InterruptedException e1) {
+					}
+				}
+				parser = null;
+				try {
+					queue.put(EOS);
+				} catch (InterruptedException e) {
+				}
+			}
+		}.start();
+		return this;
+	}
+
+	public void map(String tagName, Class<?> klass) {
+		mapping.put(tagName, new Entry(klass,false));
+	}
+
+	public void mapOnStart(String tagName, Class<?> klass) {
+		mapping.put(tagName, new Entry(klass,true));
+	}
+
+	/**
+	 * @return The next object from the xml stream or <code>null</code>,
+	 * if no more objects.
+	 */
+	public Object next() throws SAXException {
+		fillLookAhead();
+		if (lookAhead == EOS)
+			throw new NoSuchElementException();
+		Object o = lookAhead;
+		lookAhead = null;
+		return o;
+	}
+
+	private void fillLookAhead() throws SAXException {
+		if (lookAhead != null)
+			return;
+	    try {
+			lookAhead = queue.take();
+			if (lookAhead instanceof SAXException)
+				throw (SAXException)lookAhead;
+			else if (lookAhead instanceof RuntimeException)
+				throw (RuntimeException)lookAhead;
+			else if (lookAhead instanceof Exception)
+				throw new SAXException((Exception)lookAhead);
+		} catch (InterruptedException e) {
+        	throw new RuntimeException("XmlObjectParser must not be interrupted.", e);
+		}
+    }
+
+	public boolean hasNext() throws SAXException {
+		fillLookAhead();
+        return lookAhead != EOS;
+	}
+
+	public Iterator<Object> iterator() {
+		return new Iterator<Object>(){
+			public boolean hasNext() {
+				try {
+					return XmlObjectParser.this.hasNext();
+				} catch (SAXException e) {
+					e.printStackTrace();
+					throw new RuntimeException(e);
+				}
+			}
+			public Object next() {
+				try {
+					return XmlObjectParser.this.next();
+				} catch (SAXException e) {
+					e.printStackTrace();
+					throw new RuntimeException(e);
+				}
+			}
+			public void remove() {
+				throw new UnsupportedOperationException();
+			}
+		};
+	}
+}
Index: /trunk/start.html
===================================================================
--- /trunk/start.html	(revision 321)
+++ /trunk/start.html	(revision 321)
@@ -0,0 +1,8 @@
+<applet 
+  code="org/openstreetmap/josm/gui/MainApplet.class" 
+  archive="dist/josm-custom.jar,lib/gettext-commons-0.9.jar,lib/metadata-extractor-2.3.1.jar,lib/MinML2.jar" 
+  width="800" 
+  height="600"
+  username="foo"
+  password="bar"
+/>
Index: /trunk/test/functional/DeleteTest.java
===================================================================
--- /trunk/test/functional/DeleteTest.java	(revision 321)
+++ /trunk/test/functional/DeleteTest.java	(revision 321)
@@ -0,0 +1,32 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+import org.openstreetmap.josm.Main;
+
+import framework.FunctionalTestCase;
+
+
+public class DeleteTest extends FunctionalTestCase {
+
+	public void test() throws Exception {
+	    key("ctrl-n", "n");
+	    click(100,400);
+	    key("d");
+	    assertEquals(1, Main.ds.allPrimitives().size());
+	    assertEquals(0, Main.ds.allNonDeletedPrimitives().size());
+	    
+	    key("ctrl-z", "ctrl-a", "shift-n", "shift-n");
+	    click(150,400);
+	    key("s");
+	    click(150,400);
+	    key("d");
+	    assertEquals(3, Main.ds.allNonDeletedPrimitives().size());
+	    
+	    click(150,400);
+	    assertPopup();
+	    assertEquals(3, Main.ds.allNonDeletedPrimitives().size());
+	    
+	    click(125, 400);
+	    click(100, 400);
+	    click(150, 400);
+	    assertEquals(0, Main.ds.allNonDeletedPrimitives().size());
+    }
+}
Index: /trunk/test/functional/NodeTest.java
===================================================================
--- /trunk/test/functional/NodeTest.java	(revision 321)
+++ /trunk/test/functional/NodeTest.java	(revision 321)
@@ -0,0 +1,110 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+import java.util.Iterator;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+
+import framework.FunctionalTestCase;
+
+public class NodeTest extends FunctionalTestCase {
+
+	public void test() throws Exception {
+		key("ctrl-n");
+		assertNotNull(Main.map);
+
+		key("n");
+		click(100,500);
+		assertEquals(1, Main.ds.nodes.size());
+		assertEquals(1, Main.ds.getSelected().size());
+		assertEquals(Main.ds.nodes.iterator().next(), Main.ds.getSelected().iterator().next());
+		
+		key("d");
+		assertEquals(0, Main.ds.getSelected().size());
+		assertEquals(0, Main.ds.allNonDeletedPrimitives().size());
+		
+		key("ctrl-z", "n");
+		click(200,500);
+		key("g");
+		drag(200,500,100,500);
+		key("n","shift-n");
+		click(150,500);
+		assertEquals(3, Main.ds.nodes.size());
+		assertEquals(2, Main.ds.segments.size());
+		assertEquals(1, Main.ds.getSelected().size());
+		
+		Node n = (Node)Main.ds.getSelected().iterator().next();
+		Iterator<Segment> segIt = Main.ds.segments.iterator();
+		Segment s1 = segIt.next();
+		Segment s2 = segIt.next();
+		if (s1.from == n)
+			assertSame(n, s2.to);
+		else
+			assertSame(n, s2.from);
+		
+		key("shift-n");
+		click(150,550);
+		checkSegments(n);
+		
+		key("ctrl-z", "w");
+		click(125,500);
+		click(175,500);
+		assertEquals(1, Main.ds.ways.size());
+		key("s");
+		click(150,500);
+		key("n");
+		click(150,550);
+		assertEquals(1, Main.ds.ways.size());
+		Way way = Main.ds.ways.iterator().next();
+		assertEquals("segment not added to middle of way", 2, way.segments.size());
+		checkSegments(n);
+		
+		key("ctrl-z", "s");
+		assertEquals(2, Main.ds.segments.size());
+		segIt = Main.ds.segments.iterator();
+		s1 = segIt.next();
+		s2 = segIt.next();
+		click(100,500);
+		key("n");
+		click(100,550);
+		assertEquals(1, Main.ds.ways.size());
+		assertSame(way, Main.ds.ways.iterator().next());
+		assertEquals(3, way.segments.size());
+		segIt = way.segments.iterator();
+		assertSame(s1, segIt.next());
+		assertSame(s2, segIt.next());
+		assertSame(s2.to, segIt.next().from);
+		
+		key("ctrl-z", "s");
+		click(200,500);
+		key("n");
+		click(200,550);
+		assertEquals(1, Main.ds.ways.size());
+		assertSame(way, Main.ds.ways.iterator().next());
+		segIt = way.segments.iterator();
+		assertSame(s1.from, segIt.next().to);
+		assertSame(s1, segIt.next());
+		assertSame(s2, segIt.next());
+    }
+
+	private void checkSegments(Node n) {
+		assertEquals(3, Main.ds.segments.size());
+		assertEquals(4, Main.ds.nodes.size());
+
+		Iterator<Segment> segIt = Main.ds.segments.iterator();
+		Segment s1 = segIt.next();
+		Segment s2 = segIt.next();
+		Segment s3 = segIt.next();
+		if (s1.to == n) {
+			assertSame(n, s2.from);
+			assertSame(n, s3.from);
+		} else if (s2.to == n) {
+			assertSame(n, s1.from);
+			assertSame(n, s3.from);
+		} else {
+			assertSame(n, s1.from);
+			assertSame(n, s2.from);
+		}
+    }
+}
Index: /trunk/test/functional/SegmentTest.java
===================================================================
--- /trunk/test/functional/SegmentTest.java	(revision 321)
+++ /trunk/test/functional/SegmentTest.java	(revision 321)
@@ -0,0 +1,24 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+import org.openstreetmap.josm.Main;
+
+import framework.FunctionalTestCase;
+
+
+public class SegmentTest extends FunctionalTestCase {
+
+	public void test() throws Exception {
+	    key("ctrl-n", "n");
+		click(100,500);
+		click(200,500);
+		key("g");
+		drag(200,500,100,500);
+		assertEquals(1, Main.ds.segments.size());
+		key("s");
+		click(150,500);
+		assertEquals(1, Main.ds.getSelected().size());
+		assertEquals(Main.ds.segments.iterator().next(), Main.ds.getSelected().iterator().next());
+		key("d");
+		assertEquals(0, Main.ds.getSelected().size());
+		assertTrue(Main.ds.segments.iterator().next().deleted);
+    }
+}
Index: /trunk/test/functional/SelectionTest.java
===================================================================
--- /trunk/test/functional/SelectionTest.java	(revision 321)
+++ /trunk/test/functional/SelectionTest.java	(revision 321)
@@ -0,0 +1,19 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+import org.openstreetmap.josm.Main;
+
+import framework.FunctionalTestCase;
+
+public class SelectionTest extends FunctionalTestCase {
+
+	public void test() throws Exception {
+	    key("ctrl-n", "n");
+	    click(100,400);
+	    key("shift-n", "shift-n");
+	    click(150,400);
+	    click(200,400);
+	    click(250,500);
+	    key("shift-s");
+	    drag(250,500,100,400);
+	    assertEquals(7, Main.ds.getSelected().size());
+    }
+}
Index: /trunk/test/functional/WayTest.java
===================================================================
--- /trunk/test/functional/WayTest.java	(revision 321)
+++ /trunk/test/functional/WayTest.java	(revision 321)
@@ -0,0 +1,33 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+import org.openstreetmap.josm.Main;
+
+import framework.FunctionalTestCase;
+
+
+public class WayTest extends FunctionalTestCase {
+
+	public void test() throws Exception {
+		key("ctrl-n", "n");
+		click(100,400);
+		click(150,400);
+		click(200,400);
+		key("g");
+		drag(200,400,150,400);
+		drag(150,400,100,400);
+		key("s", "ctrl-a", "w");
+		assertPopup();
+		assertEquals(1, Main.ds.ways.size());
+
+		key("ctrl-a", "s");
+		click(125,400,"ctrl");
+		key("w");
+		assertPopup();
+		assertEquals(2, Main.ds.ways.size());
+
+		key("ctrl-z", "ctrl-z", "ctrl-shift-a");
+		click(125,400);
+		assertEquals(1, Main.ds.ways.size());
+		click(175,400);
+		assertEquals(1, Main.ds.ways.size());
+	}
+}
Index: /trunk/test/functional/framework/FunctionalTestCase.java
===================================================================
--- /trunk/test/functional/framework/FunctionalTestCase.java	(revision 321)
+++ /trunk/test/functional/framework/FunctionalTestCase.java	(revision 321)
@@ -0,0 +1,162 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package framework;
+
+import java.awt.Component;
+import java.awt.Container;
+import java.awt.KeyboardFocusManager;
+import java.awt.Point;
+import java.awt.Window;
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseEvent;
+
+import javax.swing.AbstractButton;
+import javax.swing.JDialog;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JMenu;
+import javax.swing.KeyStroke;
+import javax.swing.SwingUtilities;
+
+import junit.extensions.jfcunit.JFCTestCase;
+import junit.extensions.jfcunit.RobotTestHelper;
+import junit.extensions.jfcunit.eventdata.DragEventData;
+import junit.extensions.jfcunit.eventdata.KeyEventData;
+import junit.extensions.jfcunit.eventdata.MouseEventData;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.Preferences;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.gui.MainApplication;
+
+abstract public class FunctionalTestCase extends JFCTestCase {
+
+	private KeyStroke getKey(String s) {
+    	int key = 0;
+    	int modifier = 0;
+    	s = s.toUpperCase();
+    	if (s.startsWith("CTRL")) {
+    		modifier |= InputEvent.CTRL_MASK;
+    		s = s.substring(4);
+    	}
+    	if (s.startsWith("-"))
+    		s = s.substring(1);
+    	if (s.startsWith("SHIFT")) {
+    		modifier |= InputEvent.SHIFT_MASK;
+    		s = s.substring(5);
+    	}
+    	if (s.startsWith("-"))
+    		s = s.substring(1);
+    	if (s.startsWith("ALT")) {
+    		modifier |= InputEvent.ALT_MASK;
+    		s = s.substring(3);
+    	}
+    	if (s.startsWith("-"))
+    		s = s.substring(1);
+    	if (s.matches("^F[1-9][012]?$"))
+    		key = KeyEvent.VK_F1 + Integer.parseInt(s.substring(1)) - 1;
+    	else if (s.length() == 0)
+    		key = 0;
+    	else if (s.length() != 1)
+    		throw new RuntimeException("Illegal key description '"+s+"'.");
+    	else
+    		key = s.charAt(0);
+    	return KeyStroke.getKeyStroke(key, modifier);
+    }
+
+	@Override protected void setUp() throws Exception {
+		super.setUp();
+		setHelper(new RobotTestHelper());
+		
+		Main.ds = new DataSet();
+		Main.pref = new Preferences();
+		if (Main.map != null)
+			Main.main.setMapFrame(null);
+		
+		MainApplication.main(new String[]{});
+	}
+	
+	@Override protected void tearDown() throws Exception {
+		Main.parent.setVisible(false);
+		super.tearDown();
+	}
+
+	protected Component find(Component c, String search) {
+		if (c == null)
+			return null;
+		if (search.equals(c.getName()))
+			return c;
+		if (c instanceof JLabel && search.equals(((JLabel)c).getText()))
+			return c;
+		if (c instanceof AbstractButton && search.equals(((AbstractButton)c).getText()))
+			return c;
+
+		if (c instanceof Container) {
+			Container ct = (Container)c;
+			for (int i = 0; i < ct.getComponentCount(); ++i) {
+				Component result = find(ct.getComponent(i), search);
+				if (result != null)
+					return result;
+			}
+		}
+		if (c instanceof JMenu) {
+			JMenu menu = (JMenu)c;
+			for (int i = 0; i < menu.getMenuComponentCount(); ++i) {
+				Component result = find(menu.getMenuComponent(i), search);
+				if (result != null)
+					return result;
+			}
+		}
+		if (c instanceof JFrame) {
+			Component result = find(((JFrame)c).getJMenuBar(), search);
+			if (result != null)
+				return result;
+		}
+		return null;
+	}
+	
+	protected Component find(String s) {
+		Container frame = SwingUtilities.getAncestorOfClass(Window.class, KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner());
+		return find(frame, s);
+	}
+
+	protected void key(String... keys) {
+		for (String s : keys) {
+			KeyStroke k = getKey(s);
+			getHelper().sendKeyAction(new KeyEventData(this, Main.contentPane, k.getKeyCode(), k.getModifiers(), 0));
+		}
+	}
+
+	protected void key(int... keys) {
+		for (int i : keys) {
+			getHelper().sendKeyAction(new KeyEventData(this, Main.contentPane, i, 0, 0));
+		}
+	}
+	
+	/**
+	 * Clicks on a spot on the main map (should be open by now)
+	 */
+	protected void click(int x, int y) {
+		getHelper().enterClickAndLeave(new MouseEventData(this, Main.map, 1, MouseEvent.BUTTON1_MASK, false, 0, new Point(x,y)));
+	}
+
+	protected void click(int x, int y, String modifier) {
+		getHelper().enterClickAndLeave(new MouseEventData(this, Main.map, 1, MouseEvent.BUTTON1_MASK + getKey(modifier).getModifiers(), false, 0, new Point(x,y)));
+	}
+	
+	
+	protected void drag(int xfrom, int yfrom, int xto, int yto) {
+		getHelper().enterDragAndLeave(new DragEventData(
+				this,
+				new MouseEventData(this, Main.map, 1, MouseEvent.BUTTON1_MASK, false, 0, new Point(xfrom, yfrom)),
+				new MouseEventData(this, Main.map, 1, MouseEvent.BUTTON1_MASK, false, 0, new Point(xto, yto))));
+	}
+	
+
+	protected void assertPopup() {
+		Component focus = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner();
+		Container dlg = SwingUtilities.getAncestorOfClass(JDialog.class, focus);
+		assertNotNull("Popup dialog found", dlg);
+		key(KeyEvent.VK_ENTER);
+	}
+}
Index: /trunk/test/unit/org/openstreetmap/josm/actions/CombineWayActionTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/actions/CombineWayActionTest.java	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/actions/CombineWayActionTest.java	(revision 321)
@@ -0,0 +1,84 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.actions;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.openstreetmap.josm.testframework.MotherObject.createSegment;
+import static org.openstreetmap.josm.testframework.MotherObject.createWay;
+
+import javax.swing.Action;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.testframework.MainMock;
+import org.openstreetmap.josm.testframework.MotherObject;
+
+
+public class CombineWayActionTest extends MainMock {
+
+	private Action action = Main.main.menu.combineWay;
+	private Way way1;
+	private Way way2;
+	private Segment segment1;
+	private Segment segment2;
+
+	@Before public void createTwoWays() {
+		Main.ds = new DataSet();
+		MotherObject.dataSet = Main.ds;
+		segment1 = createSegment();
+		segment2 = createSegment();
+		way1 = createWay(segment1);
+		way2 = createWay(segment2);
+		Main.ds.setSelected(way1, way2);
+	}
+	
+	@Test public void noSelectionBreaks() throws Exception {
+		Main.ds.setSelected();
+		action.actionPerformed(null);
+		assertPopup();
+	}
+	
+	@Test public void oneSelectedWayBreaks() throws Exception {
+		Main.ds.setSelected(way1);
+		action.actionPerformed(null);
+		assertPopup();
+	}
+	
+	@Test public void segmentsAreMergedInNewWay() throws Exception {
+	    action.actionPerformed(null);
+	    Way w = way1.deleted ? way2 : way1;
+	    assertFalse(w.deleted);
+	    assertEquals(2, w.segments.size());
+    }
+	
+	@Test public void nonConflictingPropertiesAreMerged() throws Exception {
+	    way1.put("foo", "bar");
+	    way2.put("baz", "imi");
+	    
+	    action.actionPerformed(null);
+	    Way w = way1.deleted ? way2 : way1;
+
+	    assertEquals(2, w.keys.size());
+	    assertEquals("bar", w.get("foo"));
+	    assertEquals("imi", w.get("baz"));
+    }
+	
+	@Test public void conflictingPropertiesOpenResolveDialog() throws Exception {
+	    way1.put("foo", "bar");
+	    way2.put("foo", "baz");
+	    way2.put("imi", "ada");
+	    
+	    action.actionPerformed(null);
+	    assertPopup();
+	    Way w = way1.deleted ? way2 : way1;
+
+	    assertEquals(2, w.keys.size());
+	    assertTrue(w.get("foo").equals("bar") || w.get("foo").equals("bar"));
+	    assertEquals("ada", w.get("imi"));
+	}
+}
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/DataSetTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/DataSetTest.java	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/DataSetTest.java	(revision 321)
@@ -0,0 +1,91 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.osm;
+
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+
+import org.openstreetmap.josm.data.SelectionChangedListener;
+import org.openstreetmap.josm.testframework.MotherObject;
+
+public class DataSetTest extends MotherObject {
+
+	private final class TestSelectionChangeListener implements SelectionChangedListener {
+	    public Collection<? extends OsmPrimitive> called;
+		public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
+	    	called = newSelection;
+	    }
+    }
+
+	private DataSet ds;
+	private Node node1;
+	private Node node2;
+	private Node node3;
+	private Segment segment;
+	private Way way;
+
+	@Override protected void setUp() throws Exception {
+		super.setUp();
+		ds = createDataSet();
+		Iterator<Node> it = ds.nodes.iterator();
+		node1 = it.next();
+		node2 = it.next();
+		node3 = it.next();
+		segment = ds.segments.iterator().next();
+		way = ds.ways.iterator().next();
+	}
+
+	public void testAllPrimitives() {
+		Collection<OsmPrimitive> all = ds.allPrimitives();
+		assertContainsSame(all, node1, node2, node3, segment, way);
+	}
+
+	public void testAllNonDeletedPrimitives() {
+		assertEquals(5, ds.allNonDeletedPrimitives().size());
+		node1.deleted = true;
+		assertEquals(4, ds.allNonDeletedPrimitives().size());
+	}
+
+	public void testGetSelected() {
+		node1.selected = true;
+		segment.selected = true;
+		Collection<OsmPrimitive> sel = ds.getSelected();
+		assertContainsSame(sel, node1, segment);
+	}
+
+	public void testSetSelected() {
+		Collection<OsmPrimitive> sel = new LinkedList<OsmPrimitive>();
+		sel.add(node1);
+		sel.add(way);
+		ds.setSelected(sel);
+		assertTrue(node1.selected);
+		assertFalse(node2.selected);
+		assertTrue(way.selected);
+	}
+
+	public void testSetSelectedOsmPrimitive() {
+		ds.setSelected(node3);
+		assertTrue(node3.selected);
+		assertFalse(node2.selected);
+
+		ds.setSelected();
+		assertFalse(node3.selected || node2.selected);
+		
+		ds.setSelected(node1, way);
+		assertTrue(node1.selected && way.selected);
+		assertFalse(node3.selected);
+		
+		ds.setSelected((OsmPrimitive)null);
+		assertFalse(node1.selected || node2.selected || node3.selected || way.selected);
+	}
+
+	public void testFireSelectionChanged() {
+		TestSelectionChangeListener l = new TestSelectionChangeListener();
+		DataSet.listeners.add(l);
+		ds.setSelected(segment);
+		assertNotNull(l.called);
+		assertEquals(1, l.called.size());
+		assertSame(segment, l.called.iterator().next());
+		DataSet.listeners.remove(l);
+	}
+}
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/NodeTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/NodeTest.java	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/NodeTest.java	(revision 321)
@@ -0,0 +1,49 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.osm;
+
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.testframework.MotherObject;
+
+public class NodeTest extends MotherObject {
+
+	private Node node;
+
+	@Override protected void setUp() throws Exception {
+	    super.setUp();
+	    node = createNode();
+    }
+
+	public void testVisit() {
+		OsmPrimitiveTest.TestCalledVisitor v = new OsmPrimitiveTest.TestCalledVisitor();
+		node.visit(v);
+		assertEquals("Node", v.called);
+	}
+
+	public void testCloneFromRealEqual() {
+		Node node2 = createNode(23,3,4);
+		assertFalse(node2.realEqual(node, false));
+		assertFalse(node.realEqual(node2, false));
+		node.cloneFrom(node2);
+		assertTrue(node2.realEqual(node, false));
+		assertTrue(node.realEqual(node2, false));
+	}
+
+	public void testNodeNode() {
+		Node node2 = new Node(node);
+		assertTrue(node2.realEqual(node, false));
+	}
+
+	public void testNodeLatLon() {
+		LatLon latLon = new LatLon(1,2);
+		node = new Node(latLon);
+		assertEquals(node.coor, latLon);
+	}
+
+	public void testCompareToNodeTypeBiggestOrComparedAfterId() {
+		assertEquals(1, node.compareTo(createSegment()));
+		assertEquals(1, node.compareTo(createWay()));
+		Node node2 = createNode(23,1,2);
+		assertEquals(-1, node.compareTo(node2));
+		assertEquals(1, node2.compareTo(node));
+	}
+}
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/OsmPrimitiveTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/OsmPrimitiveTest.java	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/OsmPrimitiveTest.java	(revision 321)
@@ -0,0 +1,88 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.osm;
+
+import java.util.Date;
+
+import org.openstreetmap.josm.data.osm.visitor.Visitor;
+import org.openstreetmap.josm.testframework.MotherObject;
+
+public class OsmPrimitiveTest extends MotherObject {
+
+	public final static class TestCalledVisitor implements Visitor {
+        public String called;
+    	
+    	public void visit(Node n) {
+    		assertNull(called);
+    		called = "Node";
+        }
+    
+        public void visit(Segment s) {
+        	assertNull(called);
+        	called = "Segment";
+        }
+    
+        public void visit(Way w) {
+        	assertNull(called);
+        	called = "Way";
+        }
+    }
+
+	private OsmPrimitive osm;
+	private boolean visited;
+
+	@Override protected void setUp() throws Exception {
+		super.setUp();
+		osm = new OsmPrimitive() {
+			@Override public void visit(Visitor visitor) {
+				visited = true;
+			}
+
+			public int compareTo(OsmPrimitive o) {
+				return 0;
+			}
+		};
+		visited = false;
+	}
+
+	public void testVisit() {
+		osm.visit(new Visitor(){
+			public void visit(Node n) {}
+			public void visit(Segment s) {}
+			public void visit(Way w) {}});
+		assertTrue(visited);
+	}
+
+	public void testEqualsIsEqualOnlyIfIdAndClassMatchesAndIdIsNotZero() {
+		Node node = createNode(1,23,42);
+		Node node2 = createNode(1);
+		assertTrue(node.equals(node2));
+		Segment segment = createSegment(1);
+		assertFalse(node.equals(segment));
+		node2.id = 2;
+		assertFalse(node.equals(node2));
+		node2.id = 0;
+		node.id = 0;
+		assertFalse(node.equals(node2));
+	}
+
+	public void testKeysPutRemoveGet() {
+		assertTrue(osm.keySet().isEmpty());
+		osm.put("foo", "bar");
+		assertEquals(1, osm.keySet().size());
+		assertEquals("bar", osm.get("foo"));
+		assertEquals(1, osm.entrySet().size());
+		assertEquals("foo", osm.entrySet().iterator().next().getKey());
+		assertEquals("bar", osm.entrySet().iterator().next().getValue());
+		
+		osm.remove("asd");
+		assertEquals(1, osm.keySet().size());
+		osm.remove("foo");
+		assertEquals(0, osm.keySet().size());
+	}
+
+	public void testGetTimeStr() {
+		assertNull(osm.getTimeStr());
+		osm.timestamp = new Date(1);
+		assertEquals("1970-01-01 01:00:00", osm.getTimeStr());
+	}
+}
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/SegmentTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/SegmentTest.java	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/SegmentTest.java	(revision 321)
@@ -0,0 +1,67 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.osm;
+
+import org.openstreetmap.josm.testframework.MotherObject;
+
+public class SegmentTest extends MotherObject {
+
+	private Segment segment;
+
+	@Override protected void setUp() throws Exception {
+		super.setUp();
+		segment = createSegment();
+	}
+
+	public void testVisit() {
+		OsmPrimitiveTest.TestCalledVisitor v = new OsmPrimitiveTest.TestCalledVisitor();
+		segment.visit(v);
+		assertEquals("Segment", v.called);
+	}
+
+	public void testCloneFromRealEqual() {
+		Segment s2 = createSegment(23, createNode(1,2,3), createNode(2,3,4));
+		segment.cloneFrom(s2);
+		assertTrue(segment.realEqual(s2, false));
+		assertTrue(s2.realEqual(segment, false));
+		assertSame(segment.from, s2.from);
+		assertSame(segment.to, s2.to);
+	}
+
+	public void testSegmentSegment() {
+		Segment s = new Segment(segment);
+		assertTrue(s.realEqual(segment, false));
+	}
+
+	public void testSegmentNodeNode() {
+		Segment s = new Segment(createNode(1,2,3), createNode(4,5,6));
+		assertEquals(2.0, s.from.coor.lat());
+		assertEquals(6.0, s.to.coor.lon());
+	}
+
+	public void testSegmentLong() {
+		Segment s = new Segment(23);
+		assertEquals(23, s.id);
+	}
+
+	public void testEqualPlace() {
+		Segment s = createSegment();
+		assertFalse(s.equalPlace(segment));
+		assertFalse(segment.equalPlace(s));
+		s.from.coor = segment.to.coor;
+		s.to.coor = segment.from.coor;
+		assertTrue(s.equalPlace(segment));
+		assertTrue(segment.equalPlace(s));
+	}
+
+	public void testCompareToSegmentSmallerThanNodeBiggerThanWayOrCompareAfterId() {
+		Segment s = createSegment(23);
+		assertEquals(-1, s.compareTo(createNode()));
+		assertEquals(1, s.compareTo(createWay()));
+		
+		assertEquals(1, s.compareTo(segment));
+		assertEquals(-1, segment.compareTo(s));
+		segment.id = s.id;
+		assertEquals(0, segment.compareTo(s));
+		assertEquals(0, s.compareTo(segment));
+	}
+}
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/WayTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/WayTest.java	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/WayTest.java	(revision 321)
@@ -0,0 +1,54 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.osm;
+
+import org.openstreetmap.josm.testframework.MotherObject;
+
+public class WayTest extends MotherObject {
+
+	private Way way;
+
+	@Override protected void setUp() throws Exception {
+		super.setUp();
+		way = createWay();
+	}
+
+	public void testVisit() {
+		OsmPrimitiveTest.TestCalledVisitor v = new OsmPrimitiveTest.TestCalledVisitor();
+		way.visit(v);
+		assertEquals("Way", v.called);
+	}
+
+	public void testCloneFromRealEqual() {
+		Way w2 = createWay(42);
+		way.cloneFrom(w2);
+		assertTrue(way.realEqual(w2, false));
+		assertEquals(w2.segments.size(), way.segments.size());
+	}
+
+	public void testWayWay() {
+		Way w = new Way(way);
+		assertEquals(way.id, w.id);
+		assertTrue(way.realEqual(w, false));
+	}
+
+	public void testWay() {
+		Way w = new Way();
+		assertEquals(0, w.id);
+		assertEquals(0, w.segments.size());
+	}
+
+	public void testCompareToWaySmallestOrCompareAfterId() {
+		Way w = createWay(23);
+		assertEquals(-1, w.compareTo(createNode()));
+		assertEquals(-1, w.compareTo(createSegment()));
+		
+		assertEquals(1, w.compareTo(way));
+		assertEquals(-1, way.compareTo(w));
+	}
+
+	public void testIsIncomplete() {
+		way.segments.add(new Segment(23));
+		assertTrue(way.isIncomplete());
+	}
+
+}
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/AddVisitorTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/AddVisitorTest.java	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/AddVisitorTest.java	(revision 321)
@@ -0,0 +1,43 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.osm.visitor;
+
+import java.lang.reflect.Field;
+
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.testframework.MotherObject;
+
+public class AddVisitorTest extends MotherObject {
+
+	private AddVisitor v;
+	private DataSet ds;
+
+	@Override protected void setUp() throws Exception {
+		super.setUp();
+		ds = new DataSet();
+		v = new AddVisitor(ds);
+	}
+
+	public void testAddVisitorDataSet() throws Exception {
+		AddVisitor v = new AddVisitor(ds);
+		Field vDs = AddVisitor.class.getDeclaredField("ds");
+		vDs.setAccessible(true);
+		assertSame(ds, vDs.get(v));
+	}
+	
+	public void testVisitNode() {
+		createNode(23).visit(v);
+		assertEquals(1, ds.nodes.size());
+		assertEquals(23, ds.nodes.iterator().next().id);
+	}
+
+	public void testVisitSegment() {
+		createSegment().visit(v);
+		assertEquals(1, ds.segments.size());
+	}
+
+	public void testVisitWay() {
+		createWay().visit(v);
+		assertEquals(1, ds.ways.size());
+	}
+
+}
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/AllNodesVisitorTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/AllNodesVisitorTest.java	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/AllNodesVisitorTest.java	(revision 321)
@@ -0,0 +1,57 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.osm.visitor;
+
+import java.util.Collection;
+import java.util.LinkedList;
+
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.testframework.MotherObject;
+
+public class AllNodesVisitorTest extends MotherObject {
+
+	private AllNodesVisitor v;
+
+	@Override protected void setUp() throws Exception {
+		super.setUp();
+		v = new AllNodesVisitor();
+	}
+
+	public void testVisitNode() {
+		Node node = createNode();
+		node.visit(v);
+		assertEquals(1, v.nodes.size());
+		assertSame(node, v.nodes.iterator().next());
+	}
+
+	public void testVisitSegment() {
+		Segment s = createSegment();
+		s.visit(v);
+		assertEquals(2, v.nodes.size());
+		assertTrue(v.nodes.contains(s.from));
+		assertTrue(v.nodes.contains(s.to));
+	}
+
+	public void testVisitWay() {
+		Way w = createWay(createSegment());
+		w.visit(v);
+		int numberOfNodes = 2*w.segments.size();
+		assertEquals(numberOfNodes, v.nodes.size());
+		for (Segment s : w.segments) {
+			assertTrue(v.nodes.contains(s.from));
+			assertTrue(v.nodes.contains(s.to));
+		}
+	}
+
+	public void testGetAllNodes() {
+		Collection<OsmPrimitive> all = new LinkedList<OsmPrimitive>();
+		all.add(createNode());
+		all.add(createSegment());
+		Collection<Node> nodes = AllNodesVisitor.getAllNodes(all);
+		
+		assertEquals(3, nodes.size());
+	}
+
+}
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/BoundingXYVisitorTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/BoundingXYVisitorTest.java	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/BoundingXYVisitorTest.java	(revision 321)
@@ -0,0 +1,62 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.osm.visitor;
+
+import org.openstreetmap.josm.data.Bounds;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.testframework.MotherObject;
+
+public class BoundingXYVisitorTest extends MotherObject {
+
+	private BoundingXYVisitor v;
+
+	private void assertVisitorFilled() {
+        assertNotNull(v.max);
+    	assertNotNull(v.min);
+    }
+
+	@Override protected void setUp() throws Exception {
+		super.setUp();
+		v = new BoundingXYVisitor();
+	}
+
+	public void testVisitNode() {
+		Node node = createNode();
+		node.visit(v);
+		assertVisitorFilled();
+		assertEquals(node.eastNorth.east(), v.min.east());
+		assertEquals(node.eastNorth.north(), v.min.north());
+		assertEquals(v.max, v.min);
+	}
+
+	public void testVisitSegment() {
+		createSegment().visit(v);
+		assertVisitorFilled();
+		assertFalse(v.max.equals(v.min));
+	}
+
+	public void testVisitWay() {
+		createWay(createSegment()).visit(v);
+		assertVisitorFilled();
+		assertFalse(v.max.equals(v.min));
+	}
+
+	public void testVisitEastNorth() {
+		v.visit(new EastNorth(123,321));
+		v.visit(new EastNorth(124,322));
+		assertEquals(123.0, v.min.east());
+		assertEquals(124.0, v.max.east());
+		assertEquals(321.0, v.min.north());
+		assertEquals(322.0, v.max.north());
+	}
+
+	public void testGetBounds() {
+		Node node = createNode();
+		v.visit(node);
+		Bounds b = v.getBounds();
+		assertNotNull(b);
+		assertEquals(node.coor.lat(), b.min.lat());
+		assertEquals(node.coor.lon(), b.min.lon());
+	}
+
+}
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/CollectBackReferencesVisitorTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/CollectBackReferencesVisitorTest.java	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/CollectBackReferencesVisitorTest.java	(revision 321)
@@ -0,0 +1,43 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.osm.visitor;
+
+import java.lang.reflect.Field;
+
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.testframework.MotherObject;
+
+public class CollectBackReferencesVisitorTest extends MotherObject {
+
+	private CollectBackReferencesVisitor v;
+	private DataSet ds;
+
+	@Override protected void setUp() throws Exception {
+		super.setUp();
+		ds = createDataSet();
+		v = new CollectBackReferencesVisitor(ds);
+	}
+
+	public void testCollectBackReferencesVisitor() throws Exception {
+		DataSet dataSet = new DataSet();
+		CollectBackReferencesVisitor v = new CollectBackReferencesVisitor(dataSet);
+		Field f = v.getClass().getDeclaredField("ds");
+		f.setAccessible(true);
+		assertSame(dataSet, f.get(v));
+	}
+
+	public void testVisitNode() {
+		ds.nodes.iterator().next().visit(v);
+		assertContainsSame(v.data, ds.segments.iterator().next(), ds.ways.iterator().next());
+	}
+
+	public void testVisitSegment() {
+		ds.segments.iterator().next().visit(v);
+		assertContainsSame(v.data, ds.ways.iterator().next());
+	}
+
+	public void testVisitWay() {
+		ds.ways.iterator().next().visit(v);
+		assertEquals(0, v.data.size());
+	}
+
+}
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/MergeVisitorTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/MergeVisitorTest.java	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/MergeVisitorTest.java	(revision 321)
@@ -0,0 +1,353 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.data.osm.visitor;
+
+import java.util.Date;
+
+import junit.framework.TestCase;
+
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.testframework.Bug;
+import org.openstreetmap.josm.testframework.DataSetTestCaseHelper;
+
+public class MergeVisitorTest extends TestCase {
+
+
+	private DataSet ds;
+	private Node dsNode;
+	private Node n;
+	private MergeVisitor v;
+
+	@Override protected void setUp() throws Exception {
+		ds = new DataSet();
+		dsNode = DataSetTestCaseHelper.createNode(ds);
+		v = new MergeVisitor(ds, null);
+		n = DataSetTestCaseHelper.createNode(null);
+	}
+
+
+	private Segment createSegment(DataSet ds, boolean incomplete, boolean deleted, int id) {
+    	Node n1 = DataSetTestCaseHelper.createNode(ds);
+    	Node n2 = DataSetTestCaseHelper.createNode(ds);
+    	Segment s = DataSetTestCaseHelper.createSegment(ds, n1, n2);
+    	s.incomplete = incomplete;
+    	s.id = id;
+    	s.deleted = deleted;
+    	s.timestamp = new Date();
+    	return s;
+    }
+
+	/**
+     * Create that amount of nodes and add them to the dataset. The id will be 1,2,3,4...
+     * @param amount Number of nodes to create.
+     * @return The created nodes.
+     */
+    private Node[] createNodes(DataSet ds, int amount) {
+    	Node[] nodes = new Node[amount];
+    	for (int i = 0; i < amount; ++i) {
+    		nodes[i] = DataSetTestCaseHelper.createNode(ds);
+    		nodes[i].id = i+1;
+    	}
+    	return nodes;
+    }
+
+
+	public void testNodesMergeUpdate() {
+		dsNode.id = 1;
+		n.id = 1;
+		n.timestamp = new Date();
+		v.visit(n);
+		assertEquals(dsNode, n);
+	}
+	public void testNodesMergeModified() {
+		dsNode.id = 1;
+		n.id = 1;
+		n.modified = true;
+		v.visit(n);
+		assertEquals(dsNode, n);
+	}
+	public void testNodesConflictBothModified() {
+		n.modified = true;
+		dsNode.modified = true;
+		n.id = 1;
+		dsNode.id = 1;
+		v.visit(n);
+		assertEquals(1, v.conflicts.size());
+	}
+	public void testNodesConflict() {
+		dsNode.id = 1;
+		dsNode.timestamp = new Date();
+		n.id = 1;
+		n.modified = true;
+		n.timestamp = new Date(dsNode.timestamp.getTime()-1);
+		v.visit(n);
+		assertEquals(1, v.conflicts.size());
+		assertSame(dsNode, v.conflicts.keySet().iterator().next());
+		assertSame(n, v.conflicts.values().iterator().next());
+	}
+	public void testNodesConflict2() {
+		dsNode.id = 1;
+		dsNode.timestamp = new Date();
+		dsNode.modified = true;
+		n.id = 1;
+		n.timestamp = new Date(dsNode.timestamp.getTime()+1);
+		v.visit(n);
+		assertEquals(1, v.conflicts.size());
+	}
+	public void testNodesConflictModifyDelete() {
+		dsNode.id = 1;
+		dsNode.modified = true;
+		n.id = 1;
+		n.delete(true);
+		v.visit(n);
+		assertEquals(1, v.conflicts.size());
+	}
+	public void testNodesMergeSamePosition() {
+		n.id = 1; // new node comes from server
+		dsNode.modified = true; // our node is modified
+		dsNode.coor = new LatLon(n.coor.lat(), n.coor.lon());
+		v.visit(n);
+		v.fixReferences();
+		assertEquals(0, v.conflicts.size());
+		assertEquals(1, dsNode.id);
+		assertFalse("updating a new node clear the modified state", dsNode.modified);
+	}
+
+	public void testNoConflictNewNodesMerged() {
+		assertEquals(0, n.id);
+		assertEquals(0, dsNode.id);
+		v.visit(n);
+		v.fixReferences();
+		assertEquals(0,v.conflicts.size());
+		assertTrue(ds.nodes.contains(n));
+		assertEquals(2, ds.nodes.size());
+	}
+
+	/**
+	 * Test that two new segments that have different from/to are not merged
+	 */
+	@Bug(101)
+	public void testNewSegmentNotMerged() {
+		v.visit(n);
+		Segment s1 = new Segment(n, dsNode);
+		v.visit(s1);
+		Segment s2 = new Segment(dsNode, n);
+		v.visit(s2);
+		assertEquals(2, ds.segments.size());
+	}
+	
+	public void testFixReferencesConflicts() {
+		// make two nodes mergable
+		dsNode.id = 1;
+		n.id = 1;
+		n.timestamp = new Date();
+		// have an old segment with the old node
+		Segment sold = new Segment(dsNode, dsNode);
+		sold.id = 23;
+		sold.modified = true;
+		ds.segments.add(sold);
+		// have a conflicting segment point to the new node
+		Segment s = new Segment(n,DataSetTestCaseHelper.createNode(null));
+		s.id = 23;
+		s.modified = true;
+
+		v.visit(n); // merge
+		assertEquals(n.timestamp, dsNode.timestamp);
+		v.visit(s);
+		assertEquals(1, v.conflicts.size());
+		v.fixReferences();
+		assertSame(s.from, dsNode);
+	}
+
+	public void testNoConflictForSame() {
+		dsNode.id = 1;
+		dsNode.modified = true;
+		n.cloneFrom(dsNode);
+		v.visit(n);
+		assertEquals(0, v.conflicts.size());
+	}
+
+	/**
+	 * Merge of an old segment with a new one. This should
+	 * be mergable (if the nodes matches).
+	 */
+	public void testMergeOldSegmentsWithNew() {
+		Node[] n = createNodes(ds, 2);
+		Segment ls1 = DataSetTestCaseHelper.createSegment(ds, n[0], n[1]);
+		ls1.id = 3;
+
+		Node newnode = new Node(new LatLon(n[1].coor.lat(), n[1].coor.lon()));
+		Segment newls = new Segment(n[0], newnode);
+
+		v.visit(newls);
+		assertEquals("segment should have been merged.", 1, ds.segments.size());
+	}
+
+	/**
+	 * Incomplete segments should always loose.
+	 */
+	public void testImportIncomplete() throws Exception {
+		Segment s1 = DataSetTestCaseHelper.createSegment(ds, dsNode, dsNode);
+		s1.id = 1;
+		Segment s2 = new Segment(s1);
+		s1.incomplete = true;
+		s2.timestamp = new Date();
+		v.visit(s2);
+		assertTrue(s1.realEqual(s2, false));
+	}
+	/**
+	 * Incomplete segments should extend existing ways.
+	 */
+	public void testImportIncompleteExtendWays() throws Exception {
+		Segment s1 = DataSetTestCaseHelper.createSegment(ds, dsNode, dsNode);
+		Way w = DataSetTestCaseHelper.createWay(ds, new Segment[]{s1});
+		s1.id = 1;
+		Segment s2 = new Segment(s1);
+		s1.incomplete = true;
+		v.visit(s2);
+		v.fixReferences();
+		assertEquals(1, w.segments.size());
+		assertEquals(s2, w.segments.get(0));
+		assertFalse(s2.incomplete);
+	}
+
+
+	/**
+	 * Nodes beeing merged are equal but should be the same.
+	 */
+	@Bug(54)
+	public void testEqualNotSame() {
+		ds = new DataSet();
+		// create a dataset with segment a-b
+		Node n[] = createNodes(ds, 2);
+		Segment ls1 = DataSetTestCaseHelper.createSegment(ds, n[0], n[1]);
+		ls1.id = 1;
+
+		// create an other dataset with segment a'-c (a' is equal, but not same to a)
+		DataSet ds2 = new DataSet();
+		Node n2[] = createNodes(ds2, 2);
+		n2[0].coor = new LatLon(n[0].coor.lat(), n[0].coor.lon());
+		n2[0].id = 0;
+		n2[1].id = 42;
+
+		Segment ls2 = DataSetTestCaseHelper.createSegment(ds, n2[0], n2[1]);
+		v = new MergeVisitor(ds, null);
+		for (OsmPrimitive osm : ds2.allPrimitives())
+			osm.visit(v);
+		v.fixReferences();
+
+		assertSame(ls1.from, ls2.from);
+	}
+
+
+	public void testCloneWayNotIncomplete() {
+		DataSet ds = new DataSet();
+		Node[] n = createNodes(ds, 2);
+		Segment s = DataSetTestCaseHelper.createSegment(ds, n[0], n[1]);
+		Way w = DataSetTestCaseHelper.createWay(ds, s);
+		MergeVisitor v = new MergeVisitor(ds, null);
+		v.visit(n[0]);
+		v.visit(n[1]);
+		v.visit(s);
+		v.visit(w);
+		Way w2 = new Way(w);
+		w2.timestamp = new Date();
+		Segment s2 = new Segment(s);
+		s2.incomplete = true;
+		w2.segments.clear();
+		w2.segments.add(s2);
+		v.visit(w2);
+		assertSame("Do not import incomplete segments when merging ways.", s, w.segments.iterator().next());
+	}
+
+	/**
+	 * When merging an incomplete way over a dataset that contain already all
+	 * necessary segments, the way must be completed.
+	 */
+	@Bug(117)
+	public void testMergeIncompleteOnExistingDoesNotComplete() {
+		// create a dataset with an segment (as base for the later incomplete way)
+		DataSet ds = new DataSet();
+		Node[] n = createNodes(ds, 2);
+		Segment s = DataSetTestCaseHelper.createSegment(ds, n[0], n[1]);
+		s.id = 23;
+		// create an incomplete way which references the former segment
+		Way w = new Way();
+		Segment incompleteSegment = new Segment(s.id);
+		w.segments.add(incompleteSegment);
+		w.id = 42;
+		// merge both
+		MergeVisitor v = new MergeVisitor(ds, null);
+		v.visit(w);
+		v.fixReferences();
+		
+		assertTrue(ds.ways.contains(w));
+		assertEquals(1, w.segments.size());
+		assertFalse(w.segments.get(0).incomplete);
+	}
+	
+	/**
+	 * Deleted segments should raise an conflict when merged over changed segments. 
+	 */
+	public void testMergeDeletedOverChangedConflict() {
+		DataSet ds = new DataSet();
+		createSegment(ds, false, false, 23).modified = true;
+		Segment s = createSegment(null, false, true, 23);
+		s.timestamp = new Date(new Date().getTime()+1);
+		
+		MergeVisitor v = new MergeVisitor(ds, null);
+		v.visit(s);
+		v.fixReferences();
+		
+		assertEquals(1, v.conflicts.size());
+	}
+	
+	public void testMergeIncompleteSegmentsAddToDataSet() throws Exception {
+		DataSet ds = new DataSet();
+		MergeVisitor v = new MergeVisitor(ds, null);
+		v.visit(createSegment(null, true, false, 1));
+		assertEquals(1, ds.segments.size());
+    }
+
+	/**
+	 * The merger should auto-resolve items, that have not changed but are marked as
+	 * changed. In the case where an unmodified newer item is merged over an modified
+	 * older, the modified-flag should be removed and the newer timestamp is used.
+	 */
+	public void testMergeModifiedWithOlderTimestampOverUnmodifiedNewerDoesNotConflict() throws Exception {
+		DataSet ds = new DataSet();
+
+		Node oldNode = createNodes(ds, 1)[0];
+		oldNode.modified = true;
+		oldNode.timestamp = new Date();
+		
+		Node newNode = new Node(oldNode);
+		Date date = new Date(oldNode.timestamp.getTime()+10000);
+		newNode.modified = false;
+		newNode.timestamp = new Date(date.getTime());
+		
+		MergeVisitor v = new MergeVisitor(ds, null);
+		v.visit(newNode);
+
+		assertEquals(0, v.conflicts.size());
+		assertEquals(date, ds.nodes.iterator().next().timestamp);
+		assertFalse(ds.nodes.iterator().next().modified);
+	}
+	
+	public void testMergeTwoIncompleteWaysMergesSecondAsWell() throws Exception {
+		DataSet ds = new DataSet();
+		Segment s1 = new Segment(23);
+		Segment s2 = new Segment(42);
+		
+		MergeVisitor v = new MergeVisitor(ds, null);
+		v.visit(s1);
+		v.visit(s2);
+		
+		assertEquals(2, ds.segments.size());
+		assertEquals(23, ds.segments.iterator().next().id);
+	}
+}
Index: /trunk/test/unit/org/openstreetmap/josm/gui/download/BoundingBoxSelectionTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/download/BoundingBoxSelectionTest.java	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/download/BoundingBoxSelectionTest.java	(revision 321)
@@ -0,0 +1,20 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.download;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+import org.openstreetmap.josm.data.Bounds;
+
+public class BoundingBoxSelectionTest {
+
+	private Bounds bounds;
+
+	@Test public void osmurl2boundsDoesWorkWithAnyDomain() throws Exception {
+		bounds = BoundingBoxSelection.osmurl2bounds("http://foobar?mlat=123&mlon=234&zoom=1");
+		assertNotNull(bounds);
+		
+		bounds = BoundingBoxSelection.osmurl2bounds("http://www.openstreetmap.org?mlat=123&mlon=234&zoom=1");
+		assertNotNull(bounds);
+	}
+}
Index: /trunk/test/unit/org/openstreetmap/josm/gui/tagging/TaggingPresetTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/tagging/TaggingPresetTest.java	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/tagging/TaggingPresetTest.java	(revision 321)
@@ -0,0 +1,73 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.gui.tagging;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.lang.reflect.Field;
+import java.util.List;
+
+import javax.swing.Action;
+import javax.swing.Icon;
+
+import junit.framework.TestCase;
+
+import org.openstreetmap.josm.gui.tagging.TaggingPreset;
+import org.openstreetmap.josm.gui.tagging.TaggingPreset.Check;
+import org.openstreetmap.josm.gui.tagging.TaggingPreset.Combo;
+import org.openstreetmap.josm.gui.tagging.TaggingPreset.Key;
+import org.openstreetmap.josm.gui.tagging.TaggingPreset.Label;
+import org.openstreetmap.josm.gui.tagging.TaggingPreset.Text;
+
+public class TaggingPresetTest extends TestCase {
+
+	public void testTaggingPresetLoads() throws Exception {
+		InputStream in = getClass().getResourceAsStream("taggingpreset-test.xml");
+		List<TaggingPreset> all = TaggingPreset.readAll(in);
+
+		assertEquals(1, all.size());
+		TaggingPreset a = all.get(0);
+		assertEquals("Highway", a.getValue(Action.NAME));
+		Field dataField = a.getClass().getDeclaredField("data");
+		dataField.setAccessible(true);
+		List<?> data = (List<?>)dataField.get(a);
+		assertEquals(5, data.size());
+
+		Label label = (Label)data.get(0);
+		assertEquals("Inserting a highway in UK", label.text);
+
+		Text text = (Text)data.get(1);
+		assertEquals("name", text.key);
+		assertEquals("Highway (e.g. M3)", text.text);
+		assertFalse(text.delete_if_empty);
+		assertNull(text.default_);
+
+		Combo combo = (Combo)data.get(2);
+		assertEquals("highway", combo.key);
+		assertEquals("Type", combo.text);
+		assertEquals("major,minor", combo.values);
+		assertTrue(combo.delete_if_empty);
+		assertTrue(combo.editable);
+		assertNull(combo.default_);
+
+		Check check = (Check)data.get(3);
+		assertEquals("oneway", check.key);
+		assertEquals("Oneway", check.text);
+		assertTrue(check.default_);
+
+		Key key = (Key)data.get(4);
+		assertEquals("class", key.key);
+		assertEquals("highway", key.value);
+	}
+	
+	public void testIconLoadsFromClasspath() throws Exception {
+		String xml = "<annotations><item icon='logo'></item></annotations>";
+		List<TaggingPreset> all = TaggingPreset.readAll(new ByteArrayInputStream(xml.getBytes()));
+
+		assertEquals(1, all.size());
+
+		Icon icon = (Icon)all.get(0).getValue(Action.SMALL_ICON);
+		assertNotNull(icon);
+		assertEquals("Icon loaded and of correct size", 
+				24, Math.max(icon.getIconHeight(), icon.getIconWidth()));
+    }
+}
Index: /trunk/test/unit/org/openstreetmap/josm/gui/tagging/taggingpreset-test.xml
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/tagging/taggingpreset-test.xml	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/tagging/taggingpreset-test.xml	(revision 321)
@@ -0,0 +1,14 @@
+<annotations>
+  <item name="Highway">
+    <label text="Inserting a highway in UK" />
+
+    <text key="name" text="Highway (e.g. M3)" />
+    <combo key="highway" text="Type" values="major,minor" delete_if_empty="true" />
+
+    <!-- Highways are usually oneway -->
+    <check key="oneway" text="Oneway" default="on" />
+
+    <!-- Always setting class=highway -->
+    <key key="class" value="highway" />
+  </item>
+</annotations>
Index: /trunk/test/unit/org/openstreetmap/josm/io/BoundingBoxDownloaderTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/io/BoundingBoxDownloaderTest.java	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/io/BoundingBoxDownloaderTest.java	(revision 321)
@@ -0,0 +1,134 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.io;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Collection;
+
+import org.junit.Test;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.PleaseWaitDialog;
+import org.openstreetmap.josm.gui.layer.RawGpsLayer.GpsPoint;
+import org.openstreetmap.josm.testframework.MainMock;
+import org.xml.sax.SAXException;
+
+public class BoundingBoxDownloaderTest extends MainMock {
+
+	private class StringDownloader extends BoundingBoxDownloader {
+	    ByteArrayInputStream stream = in == null ? null : new ByteArrayInputStream(in.getBytes());
+	    private StringDownloader() {super(1,2,3,4);}
+	    @Override protected InputStream getInputStream(String urlStr, PleaseWaitDialog pleaseWaitDlg) throws IOException {
+	    	ByteArrayInputStream oldStream = stream;
+	    	stream = null;
+	    	return oldStream;
+	    }
+    }
+
+	private BoundingBoxDownloader bbox;
+	private String in;
+	private Collection<Collection<GpsPoint>> gps;
+	private Collection<GpsPoint> trk;
+	private DataSet ds;
+
+	private void parseRaw() throws IOException, SAXException {
+		bbox = new StringDownloader();
+		gps = bbox.parseRawGps();
+		if (gps != null && gps.size() > 0)
+			trk = gps.iterator().next();
+	}
+
+	private void parseOsm() throws IOException, SAXException {
+		bbox = new StringDownloader();
+		ds = bbox.parseOsm();
+	}
+
+	
+	@Test public void parseRawGpsEmptyDataReturnsEmptyList() throws Exception {
+		in = "<gpx></gpx>";
+		parseRaw();
+		assertEquals(0, gps.size());
+	}
+	
+	@Test public void parseRawGpsOneTrack() throws Exception {
+	    in = "<gpx><trk><trkseg><trkpt lat='1' lon='2'/></trkseg></trk></gpx>";
+		parseRaw();
+		assertEquals(1, gps.size());
+		assertEquals(1, trk.size());
+		assertEquals(1.0, trk.iterator().next().latlon.lat());
+		assertEquals(2.0, trk.iterator().next().latlon.lon());
+    }
+	
+	@Test public void parseRawGpsMultipleTracksReturnStillOneTrack() throws Exception {
+	    in = "<gpx>" +
+	    		"<trk>" +
+	    		"<trkseg><trkpt lat='23' lon='42'/></trkseg>" +
+	    		"<trkseg><trkpt lat='12' lon='34'/></trkseg>" +
+	    		"</trk>" +
+	    		"<trk><trkseg><trkpt lat='3' lon='4'/></trkseg></trk>" +
+	    		"</gpx>";
+	    parseRaw();
+	    assertEquals(1, gps.size());
+	    assertEquals(3, trk.size());
+		assertEquals(42.0, trk.iterator().next().latlon.lon());
+    }
+
+	@Test public void parseOsmReturnNullIfNullInputStream() throws Exception {
+	    in = null;
+	    parseOsm();
+	    assertNull(ds);
+    }
+	
+	@Test public void parseOsmEmpty() throws Exception {
+	    in = "<osm version='0.4'></osm>";
+	    parseOsm();
+	    assertEquals(0, ds.nodes.size());
+	    assertEquals(0, ds.segments.size());
+	    assertEquals(0, ds.ways.size());
+    }
+	
+	@Test public void parseOsmSimpleNode() throws Exception {
+	    in = "<osm version='0.4'><node id='123' lat='12' lon='23'/></osm>";
+	    parseOsm();
+	    assertEquals(1, ds.nodes.size());
+	    Node node = ds.nodes.iterator().next();
+		assertEquals(123, node.id);
+	    assertEquals(12.0, node.coor.lat());
+	    assertEquals(23.0, node.coor.lon());
+	    assertNull(node.keys);
+    }
+	
+	@Test public void parseOsmComplexWay() throws Exception {
+	    in = "<osm version='0.4'>" +
+	    		"<way id='1'>" +
+	    		"<seg id='2' />" +
+	    		"</way>" +
+	    		"<segment id='2' from='3' to='3' />" +
+	    		"<node id='3' lat='1' lon='2'><tag k='foo' v='bar' /></node>" +
+	    		"</osm>";
+	    
+	    parseOsm();
+	    
+	    assertEquals(1, ds.nodes.size());
+	    assertEquals(1, ds.segments.size());
+	    assertEquals(1, ds.ways.size());
+	    
+	    Node node = ds.nodes.iterator().next();
+	    Segment segment = ds.segments.iterator().next();
+	    Way way = ds.ways.iterator().next();
+
+	    assertNotNull(node.keys);
+	    assertEquals("bar", node.get("foo"));
+	    assertEquals(1.0, node.coor.lat());
+		assertEquals(node, segment.from);
+		assertEquals(1, way.segments.size());
+		assertEquals(segment, way.segments.iterator().next());
+    }
+}
Index: /trunk/test/unit/org/openstreetmap/josm/io/IncompleteDownloaderTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/io/IncompleteDownloaderTest.java	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/io/IncompleteDownloaderTest.java	(revision 321)
@@ -0,0 +1,39 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.io;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.util.LinkedList;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.PleaseWaitDialog;
+import org.openstreetmap.josm.testframework.Bug;
+import org.openstreetmap.josm.testframework.MotherObject;
+
+public class IncompleteDownloaderTest extends MotherObject {
+
+
+	@Bug(174)
+	public void testDownloadDoesNotWriteToMainDataDirectly() throws Exception {
+		LinkedList<Way> l = new LinkedList<Way>();
+		Way w = new Way();
+		w.segments.add(new Segment(23)); // incomplete segment
+		Main.ds.nodes.add(createNode(1));
+		Main.ds.nodes.add(createNode(2));
+		l.add(w);
+		IncompleteDownloader downloader = new IncompleteDownloader(l) {
+			@Override protected InputStream getInputStream(String urlStr, PleaseWaitDialog pleaseWaitDlg) {
+				String xml = "<osm version='0.4'><segment id='23' from='1' to='2'/></osm>";
+	            return new ByteArrayInputStream(xml.getBytes());
+            }
+		};
+
+		Main.pleaseWaitDlg = new PleaseWaitDialog(null);
+
+		downloader.parse();
+
+		assertEquals("Does not directly write to main data", 0, Main.ds.segments.size());
+	}
+}
Index: /trunk/test/unit/org/openstreetmap/josm/plugins/PluginExceptionTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/plugins/PluginExceptionTest.java	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/plugins/PluginExceptionTest.java	(revision 321)
@@ -0,0 +1,19 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.plugins;
+
+import junit.framework.TestCase;
+
+public class PluginExceptionTest extends TestCase {
+
+	public void testConstructorPassesExceptionParameterAndSetPluginName() {
+		RuntimeException barEx = new RuntimeException("bar");
+		PluginException e = new PluginException(new PluginProxy(new String(), null), "42", barEx);
+		assertEquals(barEx, e.getCause());
+		assertEquals("42", e.name);
+	}
+
+	public void testMessageContainsThePluginName() {
+		PluginException e = new PluginException(new PluginProxy(new String(), null), "42", new RuntimeException());
+		assertTrue(e.getMessage().contains("42"));
+	}
+}
Index: /trunk/test/unit/org/openstreetmap/josm/plugins/PluginInformationTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/plugins/PluginInformationTest.java	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/plugins/PluginInformationTest.java	(revision 321)
@@ -0,0 +1,102 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.plugins;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.jar.JarInputStream;
+
+import junit.framework.TestCase;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.Preferences;
+
+public class PluginInformationTest extends TestCase {
+
+	@Override protected void setUp() throws Exception {
+	    super.setUp();
+	    Main.pref = new Preferences(){
+        	@Override public Collection<String> getAllPossiblePreferenceDirs() {
+        		return Arrays.asList(new String[]{getClass().getResource("..").getFile()});
+            }
+        };
+	}
+
+	public void testConstructorExtractsAttributesFromManifest() throws Exception {
+		PluginInformation info = new PluginInformation(new File(getClass().getResource("simple.jar").getFile()));
+		String s = getClass().getResource(".").getFile();
+        assertEquals(4, info.libraries.size());
+        assertEquals(s+"foo", info.libraries.get(1).getFile());
+        assertEquals(s+"bar", info.libraries.get(2).getFile());
+        assertEquals(s+"C:/Foo%20and%20Bar", info.libraries.get(3).getFile());
+        
+        assertEquals("imi", info.author);
+        assertEquals("Simple", info.className);
+        assertEquals("Simpler", info.description);
+        assertEquals(true, info.early);
+    }
+
+	public void testConstructorRequiresJarWithManifest() throws Exception {
+		try {
+	        new PluginInformation(new File(getClass().getResource("no_manifest.jar").getFile()));
+	        fail("Exception because missing manifest excpected");
+        } catch (PluginException e) {
+        }
+    }
+	
+	public void testConstructorWithInputStream() throws Exception {
+		JarInputStream f = new JarInputStream(getClass().getResourceAsStream("simple.jar"));
+		ByteArrayOutputStream out = new ByteArrayOutputStream();
+		f.getManifest().write(out);
+
+		PluginInformation info = new PluginInformation(null, "simple", new ByteArrayInputStream(out.toByteArray()));
+        assertEquals("Only the 3 external classpaths are added (as we are using bootstrap classpath for plugin",
+        		3, info.libraries.size());
+    }
+	
+	public void testLoadClassInstantiatePlugin() throws Exception {
+		PluginInformation info = new PluginInformation(new File(getClass().getResource("working.jar").getFile()));
+		ClassLoader cl = new URLClassLoader(new URL[]{getClass().getResource("working.jar")});
+		assertNotNull(info.load(info.loadClass(cl)));
+    }
+	
+	// This is so the bugtracker always detect coding problems as "plugin problems"
+	public void testLoadThrowsPluginExceptionOnRuntimeException() throws Exception {
+		PluginInformation info = new PluginInformation(new File(getClass().getResource("working.jar").getFile()));
+		try {
+	        info.load(null);
+	        fail("Exception excpected because null-Class");
+        } catch (PluginException e) {
+        }
+        try {
+        	info.loadClass(null);
+        	fail("Exception excpected because null-ClassLoader");
+        } catch (PluginException e) {
+        }
+    }
+	
+	public void testFindPluginReturnsInformationFromBootstrapClasspath() throws Exception {
+	    PluginInformation info = PluginInformation.findPlugin("test_simple");
+	    assertEquals("Simpler", info.description);
+    }
+	
+	public void testFindPluginReturnsFromPreferencesDirs() throws Exception {
+	    PluginInformation info = PluginInformation.findPlugin("simple");
+	    assertEquals("Simpler", info.description);
+    }
+	
+	public void testFindPluginForUnknownReturnsNull() throws Exception {
+		assertNull(PluginInformation.findPlugin("asdf"));
+	}
+
+	public void testPluginLocationsReturnModifiedPreferenceLocations() throws Exception {
+	    setUp();
+	    Collection<String> locations = PluginInformation.getPluginLocations();
+	    assertEquals(1, locations.size());
+	    assertTrue(locations.iterator().next().endsWith("/plugins"));
+    }
+}
Index: /trunk/test/unit/org/openstreetmap/josm/plugins/test_simple/MANIFEST.MF
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/plugins/test_simple/MANIFEST.MF	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/plugins/test_simple/MANIFEST.MF	(revision 321)
@@ -0,0 +1,5 @@
+Manifest-Version: 1.0
+Created-By: 1.5.0_07 (Sun Microsystems Inc.)
+Plugin-Class: Simple
+Plugin-Description: Simpler
+
Index: /trunk/test/unit/org/openstreetmap/josm/testframework/Bug.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/testframework/Bug.java	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/testframework/Bug.java	(revision 321)
@@ -0,0 +1,14 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.testframework;
+
+/**
+ * Annotation that indicate that a specific test case function was a bug.
+ * @author Imi
+ */
+public @interface Bug {
+	/**
+	 * The revision this bug was detected. (Can be later than the actual first occourence.
+	 * This number is just to have a revision where the bug actually happen.)
+	 */
+	int value();
+}
Index: /trunk/test/unit/org/openstreetmap/josm/testframework/DataSetTestCaseHelper.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/testframework/DataSetTestCaseHelper.java	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/testframework/DataSetTestCaseHelper.java	(revision 321)
@@ -0,0 +1,74 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.testframework;
+
+import java.util.Arrays;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.projection.Mercator;
+
+
+/**
+ * Test cases that need to manupulate a data set can use this helper.
+ *  
+ * @author Imi
+ */
+public class DataSetTestCaseHelper {
+
+	/**
+	 * Create a common dataset consisting of:
+	 * - 5 random nodes
+	 * - ls between node 0 and 1
+	 * - ls between node 1 and 2
+	 * - ls between node 3 and 4
+	 * - a way with ls 0 and 1
+	 */
+	public static DataSet createCommon() {
+		DataSet ds = new DataSet();
+		Node n1 = createNode(ds);
+		Node n2 = createNode(ds);
+		Node n3 = createNode(ds);
+		Node n4 = createNode(ds);
+		Node n5 = createNode(ds);
+		Segment ls1 = createSegment(ds, n1, n2);
+		Segment ls2 = createSegment(ds, n2, n3);
+		createSegment(ds, n4, n5);
+		createWay(ds, ls1, ls2);
+		return ds;
+	}
+
+	public static Way createWay(DataSet ds, Segment... segments) {
+		Way w = new Way();
+		w.segments.addAll(Arrays.asList(segments));
+		if (ds != null)
+			ds.ways.add(w);
+		return w;
+	}
+	
+	/**
+	 * Create a segment with out of the given nodes.
+	 */
+	public static Segment createSegment(DataSet ds, Node n1, Node n2) {
+		Segment ls = new Segment(n1, n2);
+		if (ds != null)
+			ds.segments.add(ls);
+		return ls;
+	}
+
+	/**
+	 * Add a random node.
+	 */
+	public static Node createNode(DataSet ds) {
+		if (Main.proj == null)
+			Main.proj = new Mercator();
+		Node node = new Node(new LatLon(Math.random(), Math.random()));
+		if (ds != null)
+			ds.nodes.add(node);
+		return node;
+	}
+
+}
Index: /trunk/test/unit/org/openstreetmap/josm/testframework/MainMock.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/testframework/MainMock.java	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/testframework/MainMock.java	(revision 321)
@@ -0,0 +1,72 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.testframework;
+
+import java.awt.AWTEvent;
+import java.awt.Toolkit;
+import java.awt.event.AWTEventListener;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Collections;
+
+import javax.swing.JButton;
+import javax.swing.JDialog;
+import javax.swing.JFrame;
+import javax.swing.JOptionPane;
+import javax.swing.SwingUtilities;
+
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.Preferences;
+import org.openstreetmap.josm.data.projection.Epsg4326;
+import org.openstreetmap.josm.gui.PleaseWaitDialog;
+
+public class MainMock {
+
+	private static JDialog lastPopup;
+
+	@Before public void clearFoundPopup() {
+		lastPopup = null;
+	}
+	
+	@BeforeClass public static void mockMain() throws Exception {
+		Main.pref = new Preferences(){
+			@Override protected void save() {}
+			@Override public void load() throws IOException {}
+			@Override public Collection<Bookmark> loadBookmarks() throws IOException {return Collections.emptyList();}
+			@Override public void saveBookmarks(Collection<Bookmark> bookmarks) throws IOException {}
+		};
+		Main.parent = new JFrame();
+		Main.proj = new Epsg4326();
+		Main.pleaseWaitDlg = new PleaseWaitDialog(Main.parent);
+		Main.main = new Main(){};
+	}
+
+	@BeforeClass public static void startPopupKiller() {
+		Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener(){
+			public void eventDispatched(AWTEvent event) {
+				if (event.getSource() instanceof JButton) {
+					JButton b = (JButton)event.getSource();
+					if (b.getParent().getParent() instanceof JOptionPane) {
+						lastPopup = (JDialog)SwingUtilities.getRoot(b);
+						b.doClick();
+					}
+				}
+            }
+		}, AWTEvent.FOCUS_EVENT_MASK);
+    }
+
+	public void assertPopup() {
+		waitForPopup();
+		lastPopup = null;
+	}
+
+	public JDialog waitForPopup() {
+	    for (int i = 0; i < 100; ++i) {
+			if (lastPopup != null)
+				return lastPopup;
+			try {Thread.sleep(10);} catch (InterruptedException e) {}
+		}
+		throw new AssertionError("Expected Popup dialog");
+    }
+}
Index: /trunk/test/unit/org/openstreetmap/josm/testframework/MotherObject.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/testframework/MotherObject.java	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/testframework/MotherObject.java	(revision 321)
@@ -0,0 +1,104 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.testframework;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.LinkedList;
+
+import junit.framework.TestCase;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.projection.Epsg4326;
+
+abstract public class MotherObject extends TestCase {
+
+	public static DataSet dataSet;
+	
+	@Override protected void setUp() throws Exception {
+	    super.setUp();
+	    Main.proj = new Epsg4326();
+	    Main.ds = new DataSet();
+    }
+
+	public static Node createNode(int id) {
+		return createNode(id, 0, 0);
+	}
+	
+	public static Node createNode(int id, double lat, double lon) {
+		Node n = createNode(lat, lon);
+		n.id = id;
+		return n;
+	}
+
+	public static Node createNode() {
+		return createNode(Math.random()*360-180, Math.random()*180-90);
+	}
+
+	public static Node createNode(double lat, double lon) {
+	    Node node = new Node(new LatLon(lat,lon));
+	    if (dataSet != null)
+	    	dataSet.nodes.add(node);
+		return node;
+    }
+	
+	
+	public static Segment createSegment(long id) {
+		Segment s = createSegment();
+		s.id = id;
+		return s;
+	}
+	public static Segment createSegment(long id, Node from, Node to) {
+		Segment s = new Segment(from, to);
+		s.id = id;
+		return s;
+	}
+	public static Segment createSegment() {
+		Segment segment = new Segment(createNode(), createNode());
+		if (dataSet != null)
+			dataSet.segments.add(segment);
+		return segment;
+	}
+	
+	
+	public static Way createWay() {
+		return createWay(0);
+	}
+	public static Way createWay(Segment... segments) {
+		return createWay(0, segments);
+	}
+	public static Way createWay(long id, Segment... segments) {
+		Way way = new Way();
+		way.segments.addAll(Arrays.asList(segments));
+		way.id = id;
+		if (dataSet != null)
+			dataSet.ways.add(way);
+		return way;
+	}
+	
+	public static DataSet createDataSet() {
+	    DataSet ds = new DataSet();
+		Node node1 = createNode();
+		Node node2 = createNode();
+		Node node3 = createNode();
+		Segment segment = createSegment(23, node1, node2);
+		Way way = createWay(42, segment);
+		ds.nodes.add(node1);
+		ds.nodes.add(node2);
+		ds.nodes.add(node3);
+		ds.segments.add(segment);
+		ds.ways.add(way);
+		return ds;
+    }
+
+	public static void assertContainsSame(Collection<OsmPrimitive> data, OsmPrimitive... all) {
+		Collection<OsmPrimitive> copy = new LinkedList<OsmPrimitive>(data);
+		copy.removeAll(Arrays.asList(all));
+		assertEquals(0, copy.size());
+    }
+}
Index: /trunk/test/unit/org/openstreetmap/josm/tools/DateParserTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/tools/DateParserTest.java	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/tools/DateParserTest.java	(revision 321)
@@ -0,0 +1,32 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.tools;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import junit.framework.TestCase;
+
+import org.openstreetmap.josm.tools.DateParser;
+
+public class DateParserTest extends TestCase {
+
+	public void testWrong() throws Exception {
+	    try {
+	    	DateParser.parse("imi");
+	    	assertTrue(false);
+	    } catch (ParseException pe) {
+	    }
+    }
+	
+	public void testRight() throws Exception {
+		Date d = new SimpleDateFormat("dd MM yyyy HH mm ss SSS Z").parse("23 11 2001 23 05 42 123 +0100");
+		Date d2 = new Date(d.getTime()-123);
+		assertEquals(d2, DateParser.parse("11/23/2001 23:05:42"));
+		assertEquals(d2, DateParser.parse("11/23/2001T23:05:42"));
+		assertEquals(d2, DateParser.parse("11/23/2001T23:05:42+001"));
+		assertEquals(d2, DateParser.parse("2001-11-23T23:05:42+01:00"));
+        assertEquals(d, DateParser.parse("11/23/2001T23:05:42.123"));
+		assertEquals(d, DateParser.parse("11/23/2001T23:05:42.123+001"));
+    }
+}
Index: /trunk/test/unit/org/openstreetmap/josm/tools/XmlObjectParserTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/tools/XmlObjectParserTest.java	(revision 321)
+++ /trunk/test/unit/org/openstreetmap/josm/tools/XmlObjectParserTest.java	(revision 321)
@@ -0,0 +1,102 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.tools;
+
+import java.io.StringReader;
+import java.util.NoSuchElementException;
+
+import org.openstreetmap.josm.tools.XmlObjectParser.Uniform;
+
+import junit.framework.TestCase;
+
+public class XmlObjectParserTest extends TestCase {
+
+	private XmlObjectParser parser;
+
+	public static class Foo {
+		public String bar;
+	}
+	public static class Bar {
+		private String ada;
+		public void setAda(String value) {
+			ada = value;
+		}
+	}
+
+	@Override protected void setUp() throws Exception {
+		super.setUp();
+		parser = new XmlObjectParser();
+	}
+
+	private XmlObjectParser createParser(String string) {
+		XmlObjectParser parser = new XmlObjectParser();
+		parser.map("foo", Foo.class);
+		parser.start(new StringReader(string));
+		return parser;
+	}
+
+	public void testSimpleStructWithAttributes() throws Exception {
+		parser = createParser("<xml><foo bar='foobar'/><foo bar='baz'/></xml>");
+
+		assertEquals("foobar", ((Foo)parser.next()).bar);
+		assertEquals("baz", ((Foo)parser.next()).bar);
+		assertFalse(parser.hasNext());
+		try {
+			parser.next();
+			fail();
+		} catch (NoSuchElementException e) {
+		}
+	}
+
+	public void testSubtagsWithCharacters() throws Exception {
+		parser = createParser("<foo><bar>asd</bar></foo>");
+		assertEquals("asd", ((Foo)parser.next()).bar);
+	}
+
+	public void testIterable() throws Exception {
+		parser = createParser("<xml><foo bar='yo'/><foo bar='yo'/><foo bar='yo'/></xml>");
+		for (Object o : parser)
+			assertEquals("yo", ((Foo)o).bar);
+	}
+
+	public void testUniformIterable() throws Exception {
+		XmlObjectParser.Uniform<Foo> p = new Uniform<Foo>(new StringReader("<xml><foo bar='sdf'/><foo bar='sdf'/></xml>"), "foo", Foo.class);
+		for (Foo foo : p)
+			assertEquals("sdf", foo.bar);
+	}
+
+
+	public void testObjectIntersection() throws Exception {
+		parser.map("foo", Foo.class);
+		parser.map("imi", Bar.class);
+		parser.start(new StringReader("<xml><foo bar='yo'><imi ada='123'/></foo></xml>"));
+
+		Object imi = parser.next();
+		Object foo = parser.next();
+		assertTrue(imi instanceof Bar);
+		assertTrue(foo instanceof Foo);
+		assertEquals("yo", ((Foo)foo).bar);
+		assertEquals("123", ((Bar)imi).ada);
+	}
+
+	public void testObjectIntersectionWithMapOnStart() throws Exception {
+		parser.mapOnStart("foo", Foo.class);
+		parser.map("imi", Bar.class);
+		parser.start(new StringReader("<xml><foo><imi/></foo></xml>"));
+
+		Object foo = parser.next();
+		Object imi = parser.next();
+		assertTrue(imi instanceof Bar);
+		assertTrue(foo instanceof Foo);
+	}
+
+	public void testMapReportsObjectsAndDoNotFillAttributes() throws Exception {
+		parser.map("foo", Foo.class);
+		parser.map("bar", Bar.class);
+		parser.start(new StringReader("<xml><foo><bar/></foo></xml>"));
+
+		assertTrue(parser.next() instanceof Bar);
+		Object foo = parser.next();
+		assertTrue(foo instanceof Foo);
+		assertNull(((Foo)foo).bar);
+	}
+}
