Index: /trunk/sources/HeuristicLab.Problems.TSP/3.3/Evaluators/TSPEuclideanPathEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.TSP/3.3/Evaluators/TSPEuclideanPathEvaluator.cs	(revision 3155)
+++ /trunk/sources/HeuristicLab.Problems.TSP/3.3/Evaluators/TSPEuclideanPathEvaluator.cs	(revision 3155)
@@ -0,0 +1,46 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using HeuristicLab.Core;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Problems.TSP {
+  /// <summary>
+  /// An operator which evaluates TSP solutions given in path representation using the Euclidean distance metric.
+  /// </summary>
+  [Item("TSPEuclideanPathEvaluator", "An operator which evaluates TSP solutions given in path representation using the Euclidean distance metric.")]
+  [Creatable("Test")]
+  [StorableClass]
+  public sealed class TSPEuclideanPathEvaluator : TSPCoordinatesPathEvaluator {
+    /// <summary>
+    /// Calculates the distance between two points using the Euclidean distance metric.
+    /// </summary>
+    /// <param name="x1">The x-coordinate of point 1.</param>
+    /// <param name="y1">The y-coordinate of point 1.</param>
+    /// <param name="x2">The x-coordinate of point 2.</param>
+    /// <param name="y2">The y-coordinate of point 2.</param>
+    /// <returns>The calculated distance.</returns>
+    protected override double CalculateDistance(double x1, double y1, double x2, double y2) {
+      return Math.Sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.Problems.TSP/3.3/Evaluators/TSPEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.TSP/3.3/Evaluators/TSPEvaluator.cs	(revision 3154)
+++ /trunk/sources/HeuristicLab.Problems.TSP/3.3/Evaluators/TSPEvaluator.cs	(revision 3155)
@@ -33,4 +33,8 @@
   [StorableClass]
   public abstract class TSPEvaluator : SingleSuccessorOperator, ITSPEvaluator {
+    public override bool CanChangeName {
+      get { return false; }
+    }
+
     public ILookupParameter<DoubleValue> QualityParameter {
       get { return (ILookupParameter<DoubleValue>)Parameters["Quality"]; }
Index: /trunk/sources/HeuristicLab.Problems.TSP/3.3/Evaluators/TSPGeoPathEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.TSP/3.3/Evaluators/TSPGeoPathEvaluator.cs	(revision 3155)
+++ /trunk/sources/HeuristicLab.Problems.TSP/3.3/Evaluators/TSPGeoPathEvaluator.cs	(revision 3155)
@@ -0,0 +1,67 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using HeuristicLab.Core;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Problems.TSP {
+  /// <summary>
+  /// An operator which evaluates TSP solutions given in path representation using the GEO distance metric (globe coordinates).
+  /// </summary>
+  [Item("TSPGeoPathEvaluator", "An operator which evaluates TSP solutions given in path representation using the GEO distance metric (globe coordinates).")]
+  [Creatable("Test")]
+  [StorableClass]
+  public sealed class TSPGeoPathEvaluator : TSPCoordinatesPathEvaluator {
+    private const double PI = 3.141592;
+    private const double RADIUS = 6378.388;
+
+    /// <summary>
+    /// Calculates the distance between two points using the GEO distance metric (globe coordinates).
+    /// </summary>
+    /// <param name="x1">The x-coordinate of point 1.</param>
+    /// <param name="y1">The y-coordinate of point 1.</param>
+    /// <param name="x2">The x-coordinate of point 2.</param>
+    /// <param name="y2">The y-coordinate of point 2.</param>
+    /// <returns>The calculated distance.</returns>
+    protected override double CalculateDistance(double x1, double y1, double x2, double y2) {
+      double latitude1, longitude1, latitude2, longitude2;
+      double q1, q2, q3;
+      double length;
+
+      latitude1 = ConvertToRadian(x1);
+      longitude1 = ConvertToRadian(y1);
+      latitude2 = ConvertToRadian(x2);
+      longitude2 = ConvertToRadian(y2);
+
+      q1 = Math.Cos(longitude1 - longitude2);
+      q2 = Math.Cos(latitude1 - latitude2);
+      q3 = Math.Cos(latitude1 + latitude2);
+
+      length = (int)(RADIUS * Math.Acos(0.5 * ((1.0 + q1) * q2 - (1.0 - q1) * q3)) + 1.0);
+      return (length);
+    }
+
+    private double ConvertToRadian(double x) {
+      return PI * (Math.Truncate(x) + 5.0 * (x - Math.Truncate(x)) / 3.0) / 180.0;
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.Problems.TSP/3.3/HeuristicLab.Problems.TSP-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Problems.TSP/3.3/HeuristicLab.Problems.TSP-3.3.csproj	(revision 3154)
+++ /trunk/sources/HeuristicLab.Problems.TSP/3.3/HeuristicLab.Problems.TSP-3.3.csproj	(revision 3155)
@@ -84,4 +84,6 @@
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="Evaluators\TSPEuclideanPathEvaluator.cs" />
+    <Compile Include="Evaluators\TSPGeoPathEvaluator.cs" />
     <Compile Include="TSPLIBTourParser.cs" />
     <Compile Include="Interfaces\ICoordinatesTSPSolutionsVisualizer.cs" />
@@ -159,4 +161,6 @@
     <None Include="ch130.tsp" />
     <None Include="fl1400.tsp" />
+    <None Include="gr666.opt.tour" />
+    <None Include="gr666.tsp" />
     <None Include="HeuristicLab.snk" />
     <None Include="HeuristicLabProblemsTSPPlugin.cs.frame" />
Index: /trunk/sources/HeuristicLab.Problems.TSP/3.3/TSP.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.TSP/3.3/TSP.cs	(revision 3154)
+++ /trunk/sources/HeuristicLab.Problems.TSP/3.3/TSP.cs	(revision 3155)
@@ -178,6 +178,16 @@
       if (!string.IsNullOrEmpty(tspParser.Comment)) Description = tspParser.Comment;
       Coordinates = new DoubleMatrix(tspParser.Vertices);
+      if (tspParser.WeightType == TSPLIBParser.TSPLIBEdgeWeightType.EUC_2D) {
+        TSPRoundedEuclideanPathEvaluator evaluator = new TSPRoundedEuclideanPathEvaluator();
+        evaluator.QualityParameter.ActualName = "TSPTourLength";
+        Evaluator = evaluator;
+      } else if (tspParser.WeightType == TSPLIBParser.TSPLIBEdgeWeightType.GEO) {
+        TSPGeoPathEvaluator evaluator = new TSPGeoPathEvaluator();
+        evaluator.QualityParameter.ActualName = "TSPTourLength";
+        Evaluator = evaluator;
+      }
       BestKnownQuality = null;
       BestKnownSolution = null;
+
       if (!string.IsNullOrEmpty(optimalTourFileName)) {
         TSPLIBTourParser tourParser = new TSPLIBTourParser(optimalTourFileName);
Index: /trunk/sources/HeuristicLab.Problems.TSP/3.3/TSPLIBParser.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.TSP/3.3/TSPLIBParser.cs	(revision 3154)
+++ /trunk/sources/HeuristicLab.Problems.TSP/3.3/TSPLIBParser.cs	(revision 3155)
@@ -29,4 +29,12 @@
   /// </summary>
   public class TSPLIBParser {
+    #region Inner Enum TSPLIBEdgeWeightType
+    public enum TSPLIBEdgeWeightType {
+      UNDEFINED,
+      EUC_2D,
+      GEO
+    }
+    #endregion
+
     private const int EOF = 0;
     private const int NAME = 1;
@@ -61,9 +69,9 @@
       get { return vertices; }
     }
-    private int weightType;
+    private TSPLIBEdgeWeightType weightType;
     /// <summary>
     /// Gets the weight type of the parsed TSP.
     /// </summary>
-    public int WeightType {
+    public TSPLIBEdgeWeightType WeightType {
       get { return weightType; }
     }
@@ -83,5 +91,5 @@
       comment = string.Empty;
       vertices = null;
-      weightType = -1;
+      weightType = TSPLIBEdgeWeightType.UNDEFINED;
     }
 
@@ -193,7 +201,7 @@
 
       if (type.Equals("euc_2d", StringComparison.OrdinalIgnoreCase))
-        weightType = 0;
+        weightType = TSPLIBEdgeWeightType.EUC_2D;
       else if (type.Equals("geo", StringComparison.OrdinalIgnoreCase))
-        weightType = 1;
+        weightType = TSPLIBEdgeWeightType.GEO;
       else
         throw new InvalidDataException("Input file contains an unsupported edge weight type (only \"EUC_2D\" and \"GEO\" are supported).");
Index: /trunk/sources/HeuristicLab.Problems.TSP/3.3/gr666.opt.tour
===================================================================
--- /trunk/sources/HeuristicLab.Problems.TSP/3.3/gr666.opt.tour	(revision 3155)
+++ /trunk/sources/HeuristicLab.Problems.TSP/3.3/gr666.opt.tour	(revision 3155)
@@ -0,0 +1,673 @@
+NAME : gr666.opt.tour
+TYPE : TOUR
+COMMENT : Optimal solution of gr666 (294358)
+DIMENSION : 666
+TOUR_SECTION
+1
+465
+464
+463
+462
+451
+450
+449
+448
+452
+453
+454
+456
+457
+458
+459
+460
+520
+461
+521
+522
+525
+526
+515
+524
+516
+523
+517
+518
+519
+493
+492
+491
+490
+494
+495
+496
+497
+498
+436
+500
+499
+502
+501
+156
+155
+158
+157
+159
+161
+162
+163
+186
+185
+184
+149
+183
+182
+171
+172
+173
+167
+139
+168
+169
+170
+174
+175
+176
+177
+178
+179
+180
+181
+187
+188
+190
+189
+193
+191
+192
+196
+194
+195
+207
+208
+217
+218
+219
+220
+221
+229
+228
+227
+225
+226
+216
+223
+224
+222
+212
+213
+211
+210
+209
+197
+198
+199
+200
+201
+202
+204
+205
+206
+214
+215
+230
+231
+233
+232
+234
+203
+165
+166
+508
+509
+506
+507
+164
+160
+504
+505
+503
+514
+513
+512
+511
+510
+527
+528
+529
+530
+536
+537
+538
+539
+548
+551
+554
+555
+557
+558
+559
+556
+552
+549
+553
+550
+547
+562
+563
+564
+566
+565
+574
+568
+567
+569
+570
+571
+572
+573
+575
+578
+576
+577
+579
+580
+581
+582
+583
+584
+585
+587
+588
+589
+590
+591
+586
+640
+648
+641
+642
+643
+644
+645
+646
+647
+639
+638
+657
+658
+659
+636
+637
+594
+593
+592
+595
+596
+597
+598
+600
+601
+609
+599
+608
+610
+611
+612
+635
+634
+633
+623
+632
+631
+630
+628
+629
+627
+626
+625
+624
+485
+483
+484
+482
+620
+486
+622
+621
+619
+618
+614
+616
+617
+615
+613
+604
+603
+605
+606
+607
+602
+561
+560
+546
+545
+544
+540
+541
+543
+542
+535
+534
+533
+532
+531
+473
+472
+471
+470
+474
+469
+466
+467
+468
+475
+476
+477
+478
+481
+480
+479
+2
+3
+4
+5
+6
+19
+20
+8
+7
+10
+9
+12
+11
+30
+31
+32
+33
+39
+40
+41
+36
+35
+34
+27
+25
+21
+22
+23
+24
+26
+28
+29
+53
+54
+55
+56
+57
+58
+62
+59
+60
+61
+63
+64
+65
+66
+67
+68
+69
+70
+71
+93
+665
+664
+662
+663
+661
+660
+654
+653
+655
+656
+652
+651
+650
+649
+666
+108
+109
+111
+110
+107
+106
+116
+115
+114
+113
+112
+119
+120
+121
+122
+123
+124
+125
+128
+129
+130
+131
+132
+133
+134
+135
+136
+84
+85
+86
+137
+138
+127
+126
+118
+117
+105
+104
+103
+102
+101
+100
+99
+98
+97
+95
+96
+94
+92
+91
+90
+72
+89
+88
+83
+87
+82
+81
+80
+79
+78
+77
+76
+75
+52
+74
+73
+51
+50
+45
+44
+38
+37
+42
+13
+43
+49
+48
+47
+46
+14
+15
+16
+17
+18
+235
+141
+140
+142
+143
+144
+145
+146
+239
+240
+241
+242
+238
+236
+237
+250
+248
+247
+246
+249
+254
+255
+253
+245
+252
+251
+244
+243
+147
+148
+150
+380
+259
+376
+372
+371
+258
+257
+256
+263
+262
+261
+260
+267
+266
+265
+264
+285
+303
+304
+305
+306
+307
+298
+297
+299
+300
+296
+295
+294
+293
+292
+291
+288
+289
+286
+290
+287
+268
+269
+270
+277
+278
+276
+279
+280
+281
+283
+282
+284
+333
+345
+344
+343
+342
+341
+340
+339
+338
+337
+275
+274
+352
+272
+271
+361
+362
+363
+365
+364
+273
+357
+358
+354
+353
+355
+356
+347
+346
+334
+329
+330
+331
+327
+326
+328
+322
+332
+390
+336
+335
+348
+349
+350
+351
+402
+401
+359
+360
+366
+367
+368
+370
+420
+418
+419
+375
+374
+373
+377
+378
+379
+381
+382
+383
+384
+385
+386
+387
+389
+388
+151
+152
+153
+154
+435
+488
+434
+433
+431
+432
+428
+427
+425
+426
+424
+421
+422
+423
+411
+410
+409
+407
+405
+369
+404
+403
+398
+399
+394
+397
+393
+392
+391
+442
+396
+395
+400
+445
+406
+408
+412
+414
+415
+416
+417
+429
+430
+487
+489
+455
+447
+413
+446
+444
+443
+441
+440
+316
+439
+438
+437
+311
+312
+313
+314
+315
+324
+325
+323
+321
+320
+317
+318
+319
+301
+302
+308
+309
+310
+-1
+EOF
Index: /trunk/sources/HeuristicLab.Problems.TSP/3.3/gr666.tsp
===================================================================
--- /trunk/sources/HeuristicLab.Problems.TSP/3.3/gr666.tsp	(revision 3155)
+++ /trunk/sources/HeuristicLab.Problems.TSP/3.3/gr666.tsp	(revision 3155)
@@ -0,0 +1,674 @@
+NAME: gr666
+TYPE: TSP
+COMMENT: 666 cities around the world (Groetschel)
+DIMENSION: 666
+EDGE_WEIGHT_TYPE: GEO
+DISPLAY_DATA_TYPE: COORD_DISPLAY
+NODE_COORD_SECTION
+0001 90.00 0.00
+0002 71.17 -156.47
+0003 64.51 -147.43
+0004 61.13 -149.53
+0005 58.20 -134.27
+0006 49.16 -123.07
+0007 53.33 -113.28
+0008 51.03 -114.05
+0009 50.25 -104.39
+0010 52.07 -106.38
+0011 49.53 -97.09
+0012 58.46 -94.10
+0013 43.39 -79.23
+0014 45.25 -75.42
+0015 45.31 -73.34
+0016 46.49 -71.14
+0017 44.39 -63.36
+0018 47.34 -52.43
+0019 47.36 -122.20
+0020 47.40 -117.23
+0021 38.35 -121.30
+0022 37.48 -122.24
+0023 34.03 -118.15
+0024 32.43 -117.09
+0025 40.46 -111.53
+0026 33.27 -112.05
+0027 39.43 -105.01
+0028 35.05 -106.40
+0029 31.45 -106.29
+0030 46.47 -92.06
+0031 44.59 -93.13
+0032 41.16 -95.57
+0033 39.07 -94.39
+0034 35.28 -97.32
+0035 32.47 -96.48
+0036 29.46 -95.22
+0037 43.02 -87.55
+0038 41.53 -87.38
+0039 38.39 -90.25
+0040 35.08 -90.03
+0041 29.58 -90.07
+0042 42.20 -83.03
+0043 40.26 -80.00
+0044 39.06 -84.31
+0045 33.45 -84.23
+0046 42.21 -71.04
+0047 40.43 -74.01
+0048 39.57 -75.07
+0049 38.54 -77.01
+0050 30.20 -81.40
+0051 25.46 -80.12
+0052 25.05 -77.21
+0053 28.38 -106.05
+0054 25.33 -103.26
+0055 25.40 -100.19
+0056 22.13 -97.51
+0057 22.09 -100.59
+0058 20.40 -103.20
+0059 19.24 -99.09
+0060 19.03 -98.12
+0061 19.20 -96.40
+0062 16.51 -99.55
+0063 17.03 -96.43
+0064 17.59 -92.55
+0065 20.58 -89.37
+0066 17.30 -88.12
+0067 14.38 -90.31
+0068 13.42 -89.12
+0069 14.06 -87.13
+0070 12.09 -86.17
+0071 9.56 -84.05
+0072 8.58 -79.32
+0073 23.08 -82.22
+0074 22.24 -79.58
+0075 20.01 -75.49
+0076 18.00 -76.48
+0077 18.32 -72.20
+0078 18.28 -69.54
+0079 18.28 -66.07
+0080 14.36 -61.05
+0081 13.06 -59.37
+0082 10.39 -61.31
+0083 12.06 -68.56
+0084 4.56 -52.20
+0085 5.50 -55.10
+0086 6.48 -58.10
+0087 10.30 -66.56
+0088 10.40 -71.37
+0089 10.59 -74.48
+0090 6.15 -75.35
+0091 4.36 -74.05
+0092 3.27 -76.31
+0093 -0.56 -91.01
+0094 -0.13 -78.30
+0095 -1.40 -78.38
+0096 -2.10 -79.50
+0097 -3.46 -73.15
+0098 -8.07 -79.02
+0099 -12.03 -77.03
+0100 -13.31 -71.59
+0101 -16.24 -71.33
+0102 -16.30 -68.09
+0103 -17.48 -63.10
+0104 -19.35 -65.45
+0105 -23.39 -70.24
+0106 -33.27 -70.40
+0107 -36.50 -73.03
+0108 -53.09 -70.55
+0109 -51.42 -57.51
+0110 -38.43 -62.17
+0111 -38.00 -57.33
+0112 -34.50 -56.12
+0113 -34.36 -58.27
+0114 -32.57 -60.40
+0115 -31.24 -64.11
+0116 -32.53 -68.49
+0117 -26.49 -65.13
+0118 -25.16 -57.40
+0119 -30.04 -51.11
+0120 -27.35 -48.34
+0121 -25.25 -49.15
+0122 -23.32 -46.37
+0123 -22.54 -43.14
+0124 -20.23 -43.30
+0125 -19.55 -43.56
+0126 -20.27 -54.37
+0127 -15.35 -56.05
+0128 -16.40 -49.16
+0129 -15.47 -47.55
+0130 -12.59 -38.31
+0131 -8.03 -34.54
+0132 -5.47 -35.13
+0133 -3.43 -38.30
+0134 -5.05 -42.49
+0135 -2.31 -44.16
+0136 -1.27 -48.29
+0137 -3.08 -60.01
+0138 -8.46 -63.54
+0139 14.55 -23.31
+0140 28.06 -15.24
+0141 32.38 -16.54
+0142 31.38 -8.00
+0143 33.39 -7.35
+0144 34.02 -6.51
+0145 34.05 -4.57
+0146 35.48 -5.45
+0147 35.43 -0.43
+0148 36.47 3.03
+0149 22.56 5.30
+0150 36.22 6.37
+0151 36.48 10.11
+0152 34.44 10.46
+0153 32.54 13.11
+0154 32.07 20.04
+0155 31.12 29.54
+0156 31.16 32.18
+0157 29.58 32.33
+0158 30.03 31.15
+0159 24.05 32.53
+0160 19.37 37.14
+0161 15.36 32.32
+0162 13.11 30.13
+0163 13.38 25.21
+0164 15.20 38.53
+0165 9.00 38.50
+0166 11.36 43.09
+0167 18.06 -15.57
+0168 14.40 -17.26
+0169 13.28 -16.39
+0170 11.51 -15.35
+0171 16.46 -3.01
+0172 12.39 -8.00
+0173 10.23 -9.18
+0174 9.31 -13.43
+0175 8.30 -13.15
+0176 6.18 -10.47
+0177 5.19 -4.02
+0178 6.41 -1.35
+0179 5.33 -0.13
+0180 6.08 1.13
+0181 6.29 2.37
+0182 12.22 -1.31
+0183 13.31 2.07
+0184 12.00 8.30
+0185 11.51 13.10
+0186 12.07 15.03
+0187 6.27 3.24
+0188 6.27 7.27
+0189 0.20 6.44
+0190 3.45 8.47
+0191 3.52 11.31
+0192 4.22 18.35
+0193 0.23 9.27
+0194 -4.16 15.17
+0195 -4.18 15.18
+0196 0.04 18.16
+0197 -5.54 22.25
+0198 0.30 25.12
+0199 -3.23 29.22
+0200 -1.57 30.04
+0201 0.19 32.25
+0202 -1.17 36.49
+0203 2.01 45.20
+0204 -4.03 39.40
+0205 -6.10 39.11
+0206 -6.48 39.17
+0207 -8.48 13.14
+0208 -12.44 15.47
+0209 -11.40 27.28
+0210 -12.49 28.13
+0211 -15.25 28.17
+0212 -20.09 28.36
+0213 -17.50 31.03
+0214 -15.47 35.00
+0215 -19.49 34.52
+0216 -25.58 32.35
+0217 -15.57 -5.42
+0218 -37.15 -12.30
+0219 -22.59 14.31
+0220 -22.34 17.06
+0221 -26.38 15.10
+0222 -24.45 25.55
+0223 -25.45 28.10
+0224 -26.15 28.00
+0225 -29.12 26.07
+0226 -29.55 30.56
+0227 -33.00 27.55
+0228 -33.58 25.40
+0229 -33.55 18.22
+0230 -23.21 43.40
+0231 -18.55 47.31
+0232 -12.16 49.17
+0233 -20.10 57.30
+0234 -4.38 55.27
+0235 37.44 -25.40
+0236 38.43 -9.08
+0237 41.11 -8.36
+0238 37.23 -5.59
+0239 36.32 -6.18
+0240 36.43 -4.25
+0241 37.13 -3.41
+0242 37.53 -4.46
+0243 38.21 -0.29
+0244 39.28 -0.22
+0245 41.23 2.11
+0246 41.38 -0.53
+0247 40.24 -3.41
+0248 41.39 -4.43
+0249 43.15 -2.58
+0250 43.22 -8.23
+0251 38.54 1.26
+0252 39.34 2.39
+0253 42.30 1.31
+0254 44.50 -0.34
+0255 43.36 1.26
+0256 43.18 5.24
+0257 43.42 7.15
+0258 43.42 7.23
+0259 42.42 9.27
+0260 45.50 1.16
+0261 45.26 4.24
+0262 45.45 4.51
+0263 45.10 5.43
+0264 48.24 -4.29
+0265 48.05 -1.41
+0266 47.13 -1.33
+0267 47.23 0.41
+0268 49.30 0.08
+0269 48.52 2.20
+0270 49.15 4.02
+0271 47.19 5.01
+0272 48.41 6.12
+0273 48.35 7.45
+0274 49.36 6.09
+0275 50.38 5.34
+0276 50.50 4.20
+0277 50.38 3.04
+0278 51.03 3.43
+0279 51.13 4.25
+0280 51.26 5.28
+0281 51.55 4.28
+0282 52.22 4.54
+0283 52.05 5.08
+0284 53.13 6.33
+0285 50.23 -4.10
+0286 50.43 -1.54
+0287 50.50 -0.08
+0288 51.29 -3.13
+0289 51.27 -2.35
+0290 51.30 -0.10
+0291 52.30 -1.50
+0292 53.25 -2.55
+0293 53.30 -2.15
+0294 53.23 -1.30
+0295 53.50 -1.35
+0296 54.59 -1.35
+0297 55.57 -3.13
+0298 55.53 -4.15
+0299 56.28 -3.00
+0300 57.10 -2.04
+0301 60.09 -1.09
+0302 62.01 -6.46
+0303 51.54 -8.28
+0304 52.40 -8.38
+0305 53.20 -6.15
+0306 54.35 -5.55
+0307 55.00 -7.19
+0308 64.09 -21.51
+0309 64.11 -51.44
+0310 76.34 -68.47
+0311 70.40 23.42
+0312 68.26 17.25
+0313 65.01 25.28
+0314 61.30 23.45
+0315 60.27 22.17
+0316 60.10 24.58
+0317 63.25 10.25
+0318 60.23 5.20
+0319 58.58 5.45
+0320 59.55 10.45
+0321 57.43 11.58
+0322 55.36 13.00
+0323 58.25 15.37
+0324 59.20 18.03
+0325 57.38 18.18
+0326 56.09 10.13
+0327 55.24 10.23
+0328 55.40 12.35
+0329 53.04 8.49
+0330 53.33 9.59
+0331 54.20 10.08
+0332 54.05 12.07
+0333 51.57 7.37
+0334 52.24 9.44
+0335 52.07 11.38
+0336 52.31 13.24
+0337 50.47 6.05
+0338 50.44 7.05
+0339 50.56 6.59
+0340 51.12 6.47
+0341 51.17 7.17
+0342 51.28 7.01
+0343 51.28 7.13
+0344 51.32 7.13
+0345 51.31 7.28
+0346 51.19 9.29
+0347 50.58 11.01
+0348 51.29 11.58
+0349 51.19 12.20
+0350 50.50 12.55
+0351 51.03 13.44
+0352 49.14 6.59
+0353 50.07 8.40
+0354 49.25 8.43
+0355 49.48 9.56
+0356 49.27 11.04
+0357 49.03 8.24
+0358 48.46 9.11
+0359 49.01 12.06
+0360 48.08 11.34
+0361 46.12 6.09
+0362 46.31 6.38
+0363 46.57 7.26
+0364 47.33 7.35
+0365 47.23 8.32
+0366 47.16 11.24
+0367 47.48 13.02
+0368 48.18 14.18
+0369 48.13 16.20
+0370 47.05 15.27
+0371 45.03 7.40
+0372 45.28 9.12
+0373 45.27 11.00
+0374 45.27 12.21
+0375 45.40 13.46
+0376 44.25 8.57
+0377 44.29 11.20
+0378 43.46 11.15
+0379 43.55 12.28
+0380 39.20 9.00
+0381 41.54 12.29
+0382 40.51 14.17
+0383 41.27 15.34
+0384 41.07 16.52
+0385 40.28 17.15
+0386 38.11 15.33
+0387 37.30 15.06
+0388 38.07 13.21
+0389 35.54 14.31
+0390 53.24 14.32
+0391 54.23 18.40
+0392 53.08 18.00
+0393 52.25 16.55
+0394 51.46 19.30
+0395 52.15 21.00
+0396 53.09 23.09
+0397 51.06 17.00
+0398 50.16 19.00
+0399 50.03 19.58
+0400 51.15 22.35
+0401 49.45 13.23
+0402 50.05 14.26
+0403 49.50 18.17
+0404 49.12 16.37
+0405 48.09 17.07
+0406 48.43 21.15
+0407 47.30 19.05
+0408 47.32 21.38
+0409 46.05 18.13
+0410 46.15 20.09
+0411 45.45 21.13
+0412 46.47 23.36
+0413 47.10 27.35
+0414 45.48 24.09
+0415 45.39 25.37
+0416 44.26 26.06
+0417 44.11 28.39
+0418 46.03 14.31
+0419 45.20 14.27
+0420 45.48 15.58
+0421 43.31 16.27
+0422 43.52 18.25
+0423 44.50 20.30
+0424 42.38 18.07
+0425 41.59 21.26
+0426 41.20 19.50
+0427 42.41 23.19
+0428 42.09 24.45
+0429 43.13 27.55
+0430 42.30 27.28
+0431 39.36 19.56
+0432 40.38 22.56
+0433 38.15 21.44
+0434 37.58 23.43
+0435 35.20 25.09
+0436 35.10 33.22
+0437 68.58 33.05
+0438 64.34 40.32
+0439 59.55 30.15
+0440 59.25 24.45
+0441 56.57 24.06
+0442 54.43 20.30
+0443 54.41 25.19
+0444 53.54 27.34
+0445 49.50 24.00
+0446 50.26 30.31
+0447 46.28 30.44
+0448 55.45 37.35
+0449 56.20 44.00
+0450 55.45 49.08
+0451 53.12 50.09
+0452 51.40 39.10
+0453 50.00 36.15
+0454 48.27 34.59
+0455 44.36 33.32
+0456 47.14 39.42
+0457 48.44 44.25
+0458 46.21 48.03
+0459 41.43 44.49
+0460 40.11 44.30
+0461 40.23 49.51
+0462 58.00 56.15
+0463 56.51 60.36
+0464 67.27 63.58
+0465 69.20 88.06
+0466 55.00 73.24
+0467 55.02 82.55
+0468 56.01 92.50
+0469 49.50 73.10
+0470 43.15 76.57
+0471 41.20 69.18
+0472 39.40 66.48
+0473 38.35 68.48
+0474 43.48 87.35
+0475 52.16 104.20
+0476 47.55 106.53
+0477 52.03 113.30
+0478 62.13 129.49
+0479 64.45 177.29
+0480 53.01 158.39
+0481 59.34 150.48
+0482 50.17 127.32
+0483 50.35 137.02
+0484 48.27 135.06
+0485 46.58 142.42
+0486 43.10 131.56
+0487 41.01 28.58
+0488 38.25 27.09
+0489 39.56 32.52
+0490 38.43 35.30
+0491 39.45 37.02
+0492 39.55 41.17
+0493 37.55 40.14
+0494 37.01 35.18
+0495 36.12 37.10
+0496 34.44 36.43
+0497 33.30 36.18
+0498 33.53 35.30
+0499 31.57 35.56
+0500 32.50 35.00
+0501 32.04 34.46
+0502 31.46 35.14
+0503 24.28 39.36
+0504 21.30 39.12
+0505 21.27 39.49
+0506 15.23 44.12
+0507 14.48 42.57
+0508 12.45 45.12
+0509 14.32 49.08
+0510 23.37 58.35
+0511 25.18 55.18
+0512 25.17 51.32
+0513 26.13 50.35
+0514 24.38 46.43
+0515 29.20 47.59
+0516 30.30 47.47
+0517 33.21 44.25
+0518 35.28 44.28
+0519 36.20 43.08
+0520 38.05 46.18
+0521 37.16 49.36
+0522 35.40 51.26
+0523 34.19 47.04
+0524 30.20 48.16
+0525 32.40 51.38
+0526 29.36 52.32
+0527 30.17 57.05
+0528 36.18 59.36
+0529 34.20 62.12
+0530 31.32 65.30
+0531 34.31 69.12
+0532 33.36 73.04
+0533 31.35 74.18
+0534 31.25 73.05
+0535 30.11 71.29
+0536 30.12 67.00
+0537 27.42 68.52
+0538 25.22 68.22
+0539 24.52 67.03
+0540 30.19 78.02
+0541 28.40 77.13
+0542 26.17 73.02
+0543 26.55 75.49
+0544 26.28 80.21
+0545 25.20 83.00
+0546 25.36 85.07
+0547 22.32 88.22
+0548 23.02 72.37
+0549 21.09 79.06
+0550 20.30 85.50
+0551 18.58 72.50
+0552 17.23 78.29
+0553 17.42 83.18
+0554 15.21 75.10
+0555 12.59 77.35
+0556 13.05 80.17
+0557 10.49 78.41
+0558 9.56 78.07
+0559 6.56 79.51
+0560 27.43 85.19
+0561 27.28 89.39
+0562 23.43 90.25
+0563 22.20 91.50
+0564 22.00 96.05
+0565 16.47 96.10
+0566 18.47 98.59
+0567 19.52 102.08
+0568 17.58 102.36
+0569 21.02 105.51
+0570 16.28 107.36
+0571 16.04 108.13
+0572 10.45 106.40
+0573 11.33 104.55
+0574 13.45 100.31
+0575 5.25 100.20
+0576 3.10 101.42
+0577 1.17 103.51
+0578 3.35 98.40
+0579 -0.57 100.21
+0580 -2.55 104.45
+0581 -6.10 106.48
+0582 -6.54 107.36
+0583 -7.48 110.22
+0584 -7.15 112.45
+0585 -8.39 115.13
+0586 -10.10 123.35
+0587 -3.20 114.35
+0588 1.33 110.20
+0589 4.56 114.55
+0590 -0.30 117.09
+0591 -5.07 119.24
+0592 1.29 124.51
+0593 -3.43 128.12
+0594 -5.40 132.45
+0595 7.04 125.36
+0596 10.18 123.54
+0597 10.42 122.34
+0598 14.35 121.00
+0599 22.17 114.09
+0600 22.38 120.17
+0601 25.03 121.30
+0602 29.40 91.09
+0603 36.03 103.41
+0604 34.15 108.52
+0605 30.39 104.04
+0606 29.39 106.34
+0607 25.05 102.40
+0608 23.06 113.16
+0609 26.06 119.17
+0610 30.36 114.17
+0611 32.03 118.47
+0612 31.14 121.28
+0613 34.48 113.39
+0614 36.06 120.19
+0615 37.55 112.30
+0616 39.08 117.12
+0617 39.55 116.25
+0618 38.53 121.35
+0619 41.48 123.27
+0620 45.45 126.41
+0621 39.01 125.45
+0622 37.33 126.58
+0623 35.06 129.03
+0624 43.03 141.21
+0625 39.43 140.07
+0626 38.15 140.53
+0627 35.42 139.46
+0628 35.10 136.55
+0629 36.34 136.39
+0630 35.00 135.45
+0631 34.40 135.30
+0632 34.24 132.27
+0633 32.48 129.55
+0634 31.36 130.33
+0635 26.13 127.40
+0636 13.28 144.47
+0637 -2.32 140.42
+0638 -4.12 152.12
+0639 -9.30 147.10
+0640 -12.28 130.50
+0641 -31.56 115.50
+0642 -34.55 138.35
+0643 -37.49 144.58
+0644 -42.53 147.19
+0645 -33.52 151.13
+0646 -27.28 153.02
+0647 -19.16 146.48
+0648 -23.42 133.53
+0649 -45.52 170.30
+0650 -43.32 172.38
+0651 -41.18 174.47
+0652 -36.52 174.46
+0653 -21.08 -175.12
+0654 -14.16 -170.42
+0655 -18.08 178.25
+0656 -22.16 166.27
+0657 -9.26 159.57
+0658 -0.32 166.55
+0659 11.35 165.23
+0660 21.19 -157.52
+0661 1.52 -157.20
+0662 -9.45 -139.00
+0663 -17.32 -149.34
+0664 -25.04 -130.06
+0665 -27.07 -109.22
+0666 -90.00 0.00
+EOF
