alignfaces 1.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- alignfaces/__init__.py +15 -0
- alignfaces/aperture_tools.py +213 -0
- alignfaces/contrast_tools.py +106 -0
- alignfaces/contrast_tools_.py +106 -0
- alignfaces/data/shape_predictor_68_face_landmarks.dat +0 -0
- alignfaces/face_landmarks.py +233 -0
- alignfaces/make_aligned_faces.py +1217 -0
- alignfaces/make_aligned_faces_.py +1209 -0
- alignfaces/make_files.py +42 -0
- alignfaces/make_files_.py +42 -0
- alignfaces/make_files_OLD.py +86 -0
- alignfaces/phase_cong_3.py +524 -0
- alignfaces/plot_tools.py +170 -0
- alignfaces/procrustes_tools.py +217 -0
- alignfaces/tests/R/align_reference.csv +1 -0
- alignfaces/tests/R/align_shapes.csv +40 -0
- alignfaces/tests/R/input_shapes.csv +40 -0
- alignfaces/tests/__init__.py +0 -0
- alignfaces/tests/_test_pawarp.py +267 -0
- alignfaces/tests/test_procrustes_tools.py +569 -0
- alignfaces/tests/test_warp_tools.py +316 -0
- alignfaces/warp_tools.py +279 -0
- alignfaces-1.0.1.dist-info/METADATA +135 -0
- alignfaces-1.0.1.dist-info/RECORD +27 -0
- alignfaces-1.0.1.dist-info/WHEEL +5 -0
- alignfaces-1.0.1.dist-info/licenses/LICENSE.txt +13 -0
- alignfaces-1.0.1.dist-info/top_level.txt +1 -0
alignfaces/plot_tools.py
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import numpy as np
|
|
2
|
+
import matplotlib.pyplot as plt
|
|
3
|
+
import io
|
|
4
|
+
import json
|
|
5
|
+
from PIL import Image as PilImage
|
|
6
|
+
from matplotlib.patches import Ellipse
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def plot_faces_with_landmarks(file_path, num_faces=3):
|
|
10
|
+
features = ['left_eyebrow', 'left_eye', 'right_eyebrow', 'right_eye',
|
|
11
|
+
'nose', 'mouth_outline', 'mouth_inner']
|
|
12
|
+
with io.open(file_path + '/landmarks.txt', 'r') as f:
|
|
13
|
+
imported_landmarks = json.loads(f.readlines()[0].strip())
|
|
14
|
+
guys = list(imported_landmarks.keys())
|
|
15
|
+
|
|
16
|
+
fig, ax = plt.subplots(1, num_faces)
|
|
17
|
+
fig.set_size_inches(w=6*num_faces, h=10)
|
|
18
|
+
for (guy, i) in zip(guys, range(num_faces)):
|
|
19
|
+
gray = np.array(PilImage.open(file_path + guy).convert("L"))
|
|
20
|
+
this_guy = imported_landmarks[guy]
|
|
21
|
+
these_x = np.empty((0, 3))
|
|
22
|
+
these_y = np.empty((0, 3))
|
|
23
|
+
for f in features:
|
|
24
|
+
tempy = np.array(this_guy[f])
|
|
25
|
+
x = tempy[::2]
|
|
26
|
+
y = tempy[1::2]
|
|
27
|
+
these_x = np.append(these_x, x)
|
|
28
|
+
these_y = np.append(these_y, y)
|
|
29
|
+
ax[i].imshow(gray, cmap='gray', vmin=0, vmax=255)
|
|
30
|
+
ax[i].plot(these_x, these_y, 'r.', linewidth=0, markersize=6)
|
|
31
|
+
ax[i].axis("scaled")
|
|
32
|
+
title_str = ("Close this window to continue.")
|
|
33
|
+
fig.suptitle(title_str, fontsize=24)
|
|
34
|
+
plt.show()
|
|
35
|
+
return fig, ax
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def plot_faces_with_landmarks_one_by_one(file_path):
|
|
39
|
+
|
|
40
|
+
features = ['left_eyebrow', 'left_eye', 'right_eyebrow', 'right_eye',
|
|
41
|
+
'nose', 'mouth_outline', 'mouth_inner']
|
|
42
|
+
with io.open(file_path + '/landmarks.txt', 'r') as f:
|
|
43
|
+
imported_landmarks = json.loads(f.readlines()[0].strip())
|
|
44
|
+
guys = list(imported_landmarks.keys())
|
|
45
|
+
|
|
46
|
+
num_faces = len(guys)
|
|
47
|
+
|
|
48
|
+
for (guy, i) in zip(guys, range(num_faces)):
|
|
49
|
+
gray = np.array(PilImage.open(file_path + guy).convert("L"))
|
|
50
|
+
this_guy = imported_landmarks[guy]
|
|
51
|
+
these_x = np.empty((0, 3))
|
|
52
|
+
these_y = np.empty((0, 3))
|
|
53
|
+
for f in features:
|
|
54
|
+
tempy = np.array(this_guy[f])
|
|
55
|
+
x = tempy[::2]
|
|
56
|
+
y = tempy[1::2]
|
|
57
|
+
these_x = np.append(these_x, x)
|
|
58
|
+
these_y = np.append(these_y, y)
|
|
59
|
+
|
|
60
|
+
wh = gray.shape[1] / gray.shape[0]
|
|
61
|
+
fig, ax = plt.subplots(subplot_kw={'aspect': 'equal'})
|
|
62
|
+
fig.set_size_inches(w=8*wh, h=8)
|
|
63
|
+
|
|
64
|
+
ax.imshow(gray, cmap='gray', vmin=0, vmax=255)
|
|
65
|
+
ax.plot(these_x, these_y, 'r.', linewidth=0, markersize=6)
|
|
66
|
+
ax.set_xlabel(guy, fontsize=24)
|
|
67
|
+
title_str = ("Face " + str(i+1) + " out of " + str(num_faces) +
|
|
68
|
+
" total." + "\n Close this window to continue.")
|
|
69
|
+
plt.suptitle(title_str, fontsize=24)
|
|
70
|
+
ax.axis("scaled")
|
|
71
|
+
plt.show()
|
|
72
|
+
return
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def fit_ellipse_to_2D_cloud(data):
|
|
76
|
+
"""Fit ellipse to set of 2D points using PCA.
|
|
77
|
+
|
|
78
|
+
: param data: set of 2D points
|
|
79
|
+
: type data: numpy.ndarray (number of points by 2)
|
|
80
|
+
"""
|
|
81
|
+
data_centered = data - data.mean(axis=0)
|
|
82
|
+
U, s, Vt = np.linalg.svd(data_centered)
|
|
83
|
+
c1 = Vt.T[:, 0] # first eigenvector
|
|
84
|
+
c2 = Vt.T[:, 1] # second eigenvector
|
|
85
|
+
|
|
86
|
+
T1 = np.dot(data, c1)
|
|
87
|
+
T2 = np.dot(data, c2)
|
|
88
|
+
transformed_data = np.c_[T1, T2]
|
|
89
|
+
|
|
90
|
+
# Ellipse properties
|
|
91
|
+
angle_deg = np.arctan2(c1[1], c1[0]) * 180 / np.pi
|
|
92
|
+
cxy = tuple(data.mean(axis=0))
|
|
93
|
+
major_sd, minor_sd = transformed_data.std(axis=0)
|
|
94
|
+
ellipse_fit = {}
|
|
95
|
+
ellipse_fit['cxy'] = cxy
|
|
96
|
+
ellipse_fit['major_sd'] = major_sd
|
|
97
|
+
ellipse_fit['minor_sd'] = minor_sd
|
|
98
|
+
ellipse_fit['angle_deg'] = angle_deg
|
|
99
|
+
return ellipse_fit
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def plot_ellipse(ax, ellipse_fit, alpha=0.5, color="red"):
|
|
103
|
+
"""Plot ellipse fit to landmark data; diameters are 2 SD of each axis.
|
|
104
|
+
|
|
105
|
+
: param ax: where to plot ellipse.
|
|
106
|
+
: type ax: matplotlib.axes
|
|
107
|
+
|
|
108
|
+
: param ellipse_fit: ellipse arguments output by fit_ellipse_to_2D_cloud()
|
|
109
|
+
: type ellipse_fit: dict
|
|
110
|
+
|
|
111
|
+
: param alpha: ellipse transparency
|
|
112
|
+
: type alpha: float [0-1]
|
|
113
|
+
|
|
114
|
+
: param color: color of ellipse
|
|
115
|
+
: type color: str or RGB tuple
|
|
116
|
+
"""
|
|
117
|
+
cxy = ellipse_fit['cxy']
|
|
118
|
+
major_length = ellipse_fit['major_sd'] * 2
|
|
119
|
+
minor_length = ellipse_fit['minor_sd'] * 2
|
|
120
|
+
angle_deg = ellipse_fit['angle_deg']
|
|
121
|
+
ellipse = Ellipse(cxy, major_length, minor_length, angle=angle_deg,
|
|
122
|
+
alpha=alpha, color=color)
|
|
123
|
+
ax.add_artist(ellipse)
|
|
124
|
+
return
|
|
125
|
+
|
|
126
|
+
# def get_mean_image(file_path, max_inner_face_contrast=False):
|
|
127
|
+
# with io.open(file_path + '/landmarks.txt', 'r') as f:
|
|
128
|
+
# imported_landmarks = json.loads(f.readlines()[0].strip())
|
|
129
|
+
# guys = list(imported_landmarks.keys())
|
|
130
|
+
# gray_0 = np.array(PilImage.open(file_path + guys[0]).convert("L"))
|
|
131
|
+
# shape_0 = gray_0.shape
|
|
132
|
+
#
|
|
133
|
+
# if max_inner_face_contrast:
|
|
134
|
+
# # Normalize contrast within aperture, common mean of 127.5
|
|
135
|
+
# the_aperture = place_aperture(file_path, file_path, no_save=True)
|
|
136
|
+
# inner_map = (the_aperture * 255) > 16
|
|
137
|
+
# gray_0 = contrast_stretch(gray_0, inner_locs=inner_map, type="mean_127")
|
|
138
|
+
# else:
|
|
139
|
+
# # UINT8 to double. Center and normalize
|
|
140
|
+
# gray_0 = gray_0.astype(float)
|
|
141
|
+
# gray_0 -= gray_0.mean()
|
|
142
|
+
# gray_0 = gray_0 / gray_0.std()
|
|
143
|
+
#
|
|
144
|
+
# mean_image = gray_0
|
|
145
|
+
# for guy in guys[1:]:
|
|
146
|
+
# gray = np.array(PilImage.open(file_path + guy).convert("L"))
|
|
147
|
+
# if gray.shape==shape_0:
|
|
148
|
+
#
|
|
149
|
+
# if max_inner_face_contrast:
|
|
150
|
+
# # Normalize contrast within aperture, common mean of 127.5
|
|
151
|
+
# gray = contrast_stretch(gray, inner_locs=inner_map, type="mean_127")
|
|
152
|
+
# else:
|
|
153
|
+
# # UINT8 to double. Center and normalize
|
|
154
|
+
# gray = gray.astype(float)
|
|
155
|
+
# gray -= gray.mean()
|
|
156
|
+
# gray = gray / gray.std()
|
|
157
|
+
#
|
|
158
|
+
# mean_image += gray
|
|
159
|
+
# else:
|
|
160
|
+
# print("_get_mean_image() requires that all images are same dimensions!!")
|
|
161
|
+
# mean_image = None
|
|
162
|
+
# return mean_image
|
|
163
|
+
# print("Go back to [0-255]")
|
|
164
|
+
#
|
|
165
|
+
# return mean_image
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
# END
|
|
169
|
+
# -----------------------------------------------------------------------------
|
|
170
|
+
# -----------------------------------------------------------------------------
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
# Module for doing Genearlized Procrustes Analysis (GPA).
|
|
2
|
+
#
|
|
3
|
+
# Initial is a modified and unit-tested version of:
|
|
4
|
+
# https://medium.com/@olgakravchenko_34975/generalized-procrustes-analysis-with-python-numpy-c571e8e8a421
|
|
5
|
+
# https://gist.github.com/olgakravchenko
|
|
6
|
+
import numpy as np
|
|
7
|
+
from math import atan, sin, cos
|
|
8
|
+
from scipy.linalg import norm
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def _shape_array_to_matrix(shape):
|
|
12
|
+
""" From [x1 y1 x2 y2 ... xp yp]
|
|
13
|
+
to [[x1 y1]
|
|
14
|
+
[x2 y2]
|
|
15
|
+
.
|
|
16
|
+
.
|
|
17
|
+
.
|
|
18
|
+
[xp yp]]
|
|
19
|
+
"""
|
|
20
|
+
assert len(shape.shape) == 1
|
|
21
|
+
temp_shape = shape.reshape((-1, 2))
|
|
22
|
+
return temp_shape
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def _shape_matrix_to_array(shape):
|
|
26
|
+
assert len(shape.shape) == 2
|
|
27
|
+
assert shape.shape[1] == 2
|
|
28
|
+
temp_shape = shape.reshape(-1)
|
|
29
|
+
return temp_shape
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def get_translation(shape):
|
|
33
|
+
'''
|
|
34
|
+
Calculates a translation for x and y
|
|
35
|
+
axis that centers shape around the
|
|
36
|
+
origin
|
|
37
|
+
Args:
|
|
38
|
+
shape(2n x 1 NumPy array) an array
|
|
39
|
+
containing x coodrinates of shape
|
|
40
|
+
points as first column and y coords
|
|
41
|
+
as second column
|
|
42
|
+
Returns:
|
|
43
|
+
translation([x,y]) a NumPy array with
|
|
44
|
+
x and y translationcoordinates
|
|
45
|
+
'''
|
|
46
|
+
mean_x = np.mean(shape[::2])
|
|
47
|
+
mean_y = np.mean(shape[1::2])
|
|
48
|
+
|
|
49
|
+
return np.array([mean_x, mean_y])
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def translate(shape):
|
|
53
|
+
'''
|
|
54
|
+
Translates shape to the origin
|
|
55
|
+
Args:
|
|
56
|
+
shape(2n x 1 NumPy array) an array
|
|
57
|
+
containing x coodrinates of shape
|
|
58
|
+
points as first column and y coords
|
|
59
|
+
as second column
|
|
60
|
+
'''
|
|
61
|
+
mean_x, mean_y = get_translation(shape)
|
|
62
|
+
NS = np.copy(shape)
|
|
63
|
+
NS[::2] -= mean_x
|
|
64
|
+
NS[1::2] -= mean_y
|
|
65
|
+
return NS
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
def get_rotation_matrix(theta):
|
|
69
|
+
|
|
70
|
+
return np.array([[cos(theta), -sin(theta)], [sin(theta), cos(theta)]])
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def rotate(shape, theta):
|
|
74
|
+
'''
|
|
75
|
+
Rotates a shape by angle theta
|
|
76
|
+
Assumes a shape is centered around
|
|
77
|
+
origin
|
|
78
|
+
Args:
|
|
79
|
+
shape(2nx1 NumPy array) an shape to be rotated
|
|
80
|
+
theta(float) angle in radians
|
|
81
|
+
Returns:
|
|
82
|
+
rotated_shape(2nx1 NumPy array) a rotated shape
|
|
83
|
+
'''
|
|
84
|
+
matr = get_rotation_matrix(theta)
|
|
85
|
+
temp_shape = _shape_array_to_matrix(shape)
|
|
86
|
+
rotated_shape = np.dot(matr, temp_shape.T).T
|
|
87
|
+
|
|
88
|
+
return _shape_matrix_to_array(rotated_shape)
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
def procrustes_distance(reference_shape, shape):
|
|
92
|
+
|
|
93
|
+
ref_x = reference_shape[::2]
|
|
94
|
+
ref_y = reference_shape[1::2]
|
|
95
|
+
|
|
96
|
+
x = shape[::2]
|
|
97
|
+
y = shape[1::2]
|
|
98
|
+
|
|
99
|
+
dist = np.sum(np.sqrt((ref_x - x)**2 + (ref_y - y)**2))
|
|
100
|
+
|
|
101
|
+
return dist
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
def procrustes_analysis(reference_shape, shape):
|
|
105
|
+
'''
|
|
106
|
+
Scales, and rotates a shape optimally to
|
|
107
|
+
be aligned with a reference shape
|
|
108
|
+
Args:
|
|
109
|
+
reference_shape(2nx1 NumPy array), a shape that
|
|
110
|
+
serves as reference alignment
|
|
111
|
+
|
|
112
|
+
shape(2nx1 NumPy array), a shape that is aligned
|
|
113
|
+
|
|
114
|
+
Returns:
|
|
115
|
+
aligned_shape(2nx1 NumPy array), an aligned shape
|
|
116
|
+
translated to the location of reference shape
|
|
117
|
+
'''
|
|
118
|
+
temp_ref = translate(reference_shape)
|
|
119
|
+
temp_sh = translate(shape)
|
|
120
|
+
|
|
121
|
+
# get scale and rotation
|
|
122
|
+
scale, theta = get_rotation_scale(temp_ref, temp_sh)
|
|
123
|
+
|
|
124
|
+
# scale, rotate both shapes
|
|
125
|
+
temp_sh = temp_sh / scale
|
|
126
|
+
aligned_shape = rotate(temp_sh, theta)
|
|
127
|
+
|
|
128
|
+
return aligned_shape
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
def generalized_procrustes_analysis(shapes, tol=0.001):
|
|
132
|
+
'''
|
|
133
|
+
Performs superimposition on a set of
|
|
134
|
+
shapes, calculates a mean shape
|
|
135
|
+
Args:
|
|
136
|
+
shapes(a list of 2nx1 Numpy arrays), shapes to be aligned
|
|
137
|
+
'raw values' acceptable as input; centering etc done here.
|
|
138
|
+
Returns:
|
|
139
|
+
mean(2nx1 NumPy array), a new mean shape
|
|
140
|
+
aligned_shapes(a list of 2nx1 Numpy arrays), superimposed shapes
|
|
141
|
+
'''
|
|
142
|
+
# initialize Procrustes distance
|
|
143
|
+
current_distance = np.inf # ensure at least 2 iterations are done.
|
|
144
|
+
|
|
145
|
+
# initialize a mean shape
|
|
146
|
+
reference_shape = np.array(shapes[0])
|
|
147
|
+
|
|
148
|
+
num_shapes = len(shapes)
|
|
149
|
+
|
|
150
|
+
# create array for new shapes, add
|
|
151
|
+
new_shapes = np.zeros(np.array(shapes).shape)
|
|
152
|
+
|
|
153
|
+
D = []
|
|
154
|
+
while True:
|
|
155
|
+
|
|
156
|
+
# superimpose all shapes to current mean
|
|
157
|
+
for sh in range(0, num_shapes):
|
|
158
|
+
new_sh = procrustes_analysis(reference_shape, shapes[sh])
|
|
159
|
+
new_shapes[sh] = new_sh
|
|
160
|
+
|
|
161
|
+
# calculate new reference
|
|
162
|
+
new_reference = new_shapes.mean(axis=0)
|
|
163
|
+
|
|
164
|
+
new_distance = procrustes_distance(new_reference, reference_shape)
|
|
165
|
+
D.append(new_distance)
|
|
166
|
+
|
|
167
|
+
if (current_distance - new_distance) < tol:
|
|
168
|
+
break
|
|
169
|
+
|
|
170
|
+
# align the new_reference to old mean
|
|
171
|
+
new_reference = procrustes_analysis(reference_shape, new_reference)
|
|
172
|
+
|
|
173
|
+
# update mean and distance
|
|
174
|
+
reference_shape = new_reference
|
|
175
|
+
current_distance = new_distance
|
|
176
|
+
|
|
177
|
+
return reference_shape, new_shapes, D
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
def get_rotation_scale(reference_shape, shape):
|
|
181
|
+
'''
|
|
182
|
+
Calculates rotation and scale
|
|
183
|
+
that would optimally align shape
|
|
184
|
+
with reference shape
|
|
185
|
+
Args:
|
|
186
|
+
reference_shape(2nx1 NumPy array), a shape that
|
|
187
|
+
serves as reference for scaling and
|
|
188
|
+
alignment
|
|
189
|
+
|
|
190
|
+
shape(2nx1 NumPy array), a shape that is scaled
|
|
191
|
+
and aligned
|
|
192
|
+
|
|
193
|
+
Returns:
|
|
194
|
+
scale(float), a scaling factor
|
|
195
|
+
theta(float), a rotation angle in radians
|
|
196
|
+
'''
|
|
197
|
+
|
|
198
|
+
a = np.dot(shape, reference_shape) / norm(reference_shape)**2
|
|
199
|
+
|
|
200
|
+
# separate x and y for the sake of convenience
|
|
201
|
+
ref_x = reference_shape[::2]
|
|
202
|
+
ref_y = reference_shape[1::2]
|
|
203
|
+
|
|
204
|
+
x = shape[::2]
|
|
205
|
+
y = shape[1::2]
|
|
206
|
+
|
|
207
|
+
b = np.sum(x*ref_y - ref_x*y) / norm(reference_shape)**2
|
|
208
|
+
|
|
209
|
+
scale = np.sqrt(a**2+b**2)
|
|
210
|
+
theta = atan(b / max(a, 10**-10)) # avoid dividing by 0
|
|
211
|
+
|
|
212
|
+
return scale, theta
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
# END
|
|
216
|
+
# -----------------------------------------------------------------------------
|
|
217
|
+
# -----------------------------------------------------------------------------
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.15263286731517,-0.0233503998306733,0.194450638076161,-0.0926431211286779,-0.0336122279690435,-0.00734621176067407,-0.280697212025713,-0.092850146966234,-0.30998751297991,-0.0616722636760975,-0.325578410326962,-0.0361122546325383,-0.318043897315238,0.0361253180761994,-0.189471135490295,0.0980109015425813,0.0203682927595147,0.0991128772329541,0.188526413090588,0.0772780607837867,0.351343135400763,0.0658663455202737,0.550069049464964,-0.0624191051609006
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
0.186598692107214,-0.0236351148475881,0.211205113044429,-0.0896839289422176,-0.0322689467553829,0.00485653044813477,-0.274447931769025,-0.0909790037283868,-0.313300175354102,-0.0624873584326644,-0.31589032492644,-0.0534218349294797,-0.341791820649824,0.0372334001023652,-0.177317322806334,0.107167438555502,0.0156488203328779,0.103282214196995,0.185303617321045,0.0734954941151031,0.30833572200712,0.0851511671906257,0.547924557448424,-0.0909790037283868
|
|
2
|
+
0.180009515941398,-0.0114670796387273,0.192617005039119,-0.0636708841384254,-0.0378547226868291,0.0141492916281017,-0.284563629585674,-0.0972213068319979,-0.314415336631494,-0.0716171718387022,-0.325161231631806,-0.0571890855723459,-0.324147708714118,0.0259799311529894,-0.179430940192877,0.109225189604824,0.0224852937981799,0.0998632539040355,0.194367112612304,0.085234471101986,0.338382541275774,0.059765563168544,0.537712100776022,-0.0930521725402823
|
|
3
|
+
0.182077411826254,0.00104234222768545,0.199599405173178,-0.0575323455960798,-0.0445594310077117,0.00171738147586405,-0.285956841579028,-0.106381310903718,-0.313244328469615,-0.0691219490639651,-0.324756539316507,-0.0514688174984554,-0.323188793261465,0.0318861460414284,-0.185315825689115,0.093025014788369,0.0298088062979583,0.1100031071057,0.194124386983633,0.0847541735469065,0.34581039517184,0.0668387655442249,0.525601353870578,-0.10476250766796
|
|
4
|
+
0.180798686746689,-0.00476278957248128,0.197740671344958,-0.0854472209533351,-0.0431929103999539,-0.00158140925302985,-0.267949649548504,-0.123767253366526,-0.306139116407634,-0.0756249606453794,-0.32336991694899,-0.0376176556052381,-0.310904895238817,0.044616566263899,-0.196680368463683,0.101637277066346,0.00952324609115134,0.121810351546493,0.19248881321272,0.0921749354508765,0.326775355398411,0.0803986046964685,0.540910084213651,-0.111836445628095
|
|
5
|
+
0.183451272549671,-0.00749577477846127,0.206165259822271,-0.0715329894486444,-0.0162642277645453,0.000968424657788237,-0.27973359494988,-0.108447748083583,-0.323548990258516,-0.0647691024615969,-0.330126659775279,-0.0418693490283343,-0.331739239011843,0.0425264346900457,-0.194516636147165,0.0911992645599031,0.0402277698469361,0.0972196355946791,0.209429811998458,0.0789622309394918,0.306189304943324,0.0762059607712808,0.530465928746568,-0.0929669874125688
|
|
6
|
+
0.176109090544991,-0.00492324034381936,0.194742383101851,-0.0793092814085996,-0.0514063759684915,0.00109000118987201,-0.272461021537864,-0.091476864661528,-0.295603023155037,-0.064878055741853,-0.318745187717538,-0.0546591625208453,-0.324755333290009,0.0290437692403554,-0.198674414460656,0.0944119033485272,0.0132127508095388,0.112743279149682,0.196697590946868,0.0855417773358874,0.335701455227059,0.0847890222632161,0.545182085499289,-0.112373147850896
|
|
7
|
+
0.182823202314784,0.00273045477445731,0.217751388027971,-0.0622541436926804,-0.0289493401195598,-0.00599167841658834,-0.293765171654347,-0.0925364059461927,-0.320347291080252,-0.0577320023378714,-0.331519472518417,-0.0428341868905955,-0.322526172171805,0.0277988654069742,-0.187549146641593,0.0832714321622021,0.0274340749078973,0.0932776481757403,0.189890850486574,0.0874903063551075,0.341943628437781,0.0499826255829354,0.524813450010967,-0.0832029151734879
|
|
8
|
+
0.160277223719377,-0.00972807662962476,0.214181869338274,-0.0735788673372197,-0.00625051250277926,-0.000351959566139972,-0.281687775898227,-0.107288745974902,-0.315024619027363,-0.063741700550082,-0.326731843328072,-0.0338634451690583,-0.325331224085069,0.0321291412661274,-0.194477025739994,0.0925849149015204,0.0253252514143453,0.103734686716555,0.184258206331601,0.0861518467117145,0.320601716354506,0.0729692574706492,0.5448587334234,-0.0990170518395392
|
|
9
|
+
0.192403132470124,-0.0122175969474229,0.211800614673959,-0.0845682753229018,-0.0510194516894558,-0.00460977525189493,-0.271621495717169,-0.0897646443067364,-0.302133773116796,-0.0698596660998962,-0.337928644247267,-0.0457285821193843,-0.327278617543438,0.0351586852106246,-0.19394534215482,0.100028646808804,0.0212470032238206,0.0987177950701898,0.210533414116297,0.0914482527283375,0.319608654551159,0.0731489083778199,0.528334505433586,-0.0917537481475375
|
|
10
|
+
0.19077974537159,4.25404975220346e-05,0.209066934132085,-0.0624014842448635,-0.0318778152914734,-0.000754769047338884,-0.286788815307311,-0.108459603622343,-0.312496803709164,-0.0727661553201837,-0.320307887330358,-0.0403064129206985,-0.318607414705051,0.0407035622460701,-0.190390878586844,0.0977450853350638,0.0104670257491617,0.100633151485068,0.186338958220816,0.0890001898532307,0.318996281489797,0.0570840635865158,0.544820669966752,-0.100520167848045
|
|
11
|
+
0.164747284793415,-0.0452171939250119,0.210826345661567,-0.110017310200737,-0.0527674194421671,-0.0257286812357717,-0.293528021032409,-0.081422396645405,-0.308607809522289,-0.0430257661127656,-0.325861014768402,-0.0225479080763559,-0.316816504589206,0.0442179646062745,-0.170838881248573,0.0936313288687316,0.0155720737197039,0.0812951014973685,0.192725684444485,0.0673104286724355,0.3199100142607,0.0620903675605282,0.564638247723173,-0.0205859350092889
|
|
12
|
+
0.152726547835199,-0.0452020101401087,0.21616864554593,-0.10780497296262,-0.0542393340269803,-0.0225760596480039,-0.262041293809548,-0.0824488481726809,-0.30755165652907,-0.0505955520856624,-0.328839890469322,-0.0239138168036922,-0.31727456742362,0.0508716634160693,-0.185954577632739,0.100918172593605,0.0105192032722864,0.0835306707643323,0.19238126754034,0.0622454937919125,0.304866556561841,0.074272958510276,0.579239099135683,-0.0392976992634291
|
|
13
|
+
0.15159573481574,-0.0375985548546869,0.194797758931349,-0.110259777831083,-0.0464222841165639,-0.0114212521526349,-0.287992919013003,-0.0871378819184327,-0.317696598819875,-0.0461845984774764,-0.323280291104483,-0.0273507668425147,-0.306430551372816,0.0461372900739029,-0.17240331648073,0.0975806662245959,0.0190763497354532,0.0776606236543327,0.196305608743149,0.0564427768286293,0.309073113395208,0.0670442522168833,0.583377395286571,-0.0249127769215174
|
|
14
|
+
0.144101528884856,-0.0305102260053417,0.211934613651042,-0.103472119782025,-0.0726559083492955,-0.0317328155547682,-0.278672300273903,-0.10300862218884,-0.307491339134082,-0.0667873785765732,-0.323453081676686,-0.0189554143718917,-0.29033628428945,0.0693063092853845,-0.194256830638367,0.109385800007256,0.0433714024401602,0.078880674004467,0.18824438380136,0.0735441023731111,0.28977892901793,0.0601940312149535,0.589434886566435,-0.0368443404057318
|
|
15
|
+
0.160425616470651,-0.0325467054084224,0.200139254025578,-0.122920000650851,-0.0388287121909093,-0.0110613046325831,-0.282536320564131,-0.0799901666542736,-0.306552788915264,-0.060800523017037,-0.34031432467774,-0.0366569165742089,-0.31713313711363,0.0445722936277759,-0.180020287894287,0.100145958586335,0.0457248667977223,0.0921733656265061,0.192985187491328,0.0790072639980051,0.300771416493088,0.0679845562021863,0.565339230077592,-0.0399078211034337
|
|
16
|
+
0.150771756815404,-0.0215547864327492,0.197560302841232,-0.138103600239892,-0.0341986146737965,-0.008086888648142,-0.291704855457204,-0.0970145178203622,-0.310994967761824,-0.0529560751887363,-0.323750302951839,-0.0258834719076324,-0.313251452023507,0.0471852580801342,-0.178462213282786,0.0982612592537858,0.0259507988831811,0.0879833405535446,0.198011016236495,0.0796886040470296,0.315454698468808,0.0562318102903959,0.564613832905835,-0.0257509319873742
|
|
17
|
+
0.159361040007824,-0.03694542012339,0.204407560052775,-0.107790985040107,-0.0520543527706345,-0.0271752329040519,-0.278025007351236,-0.0910716648761376,-0.302445640061327,-0.0564904395157608,-0.317593667824994,-0.0223377311386876,-0.314765455735186,0.0388614615077085,-0.203603695696915,0.111780546051337,0.0315776563556018,0.0934781307182688,0.183134157096984,0.0753233262563699,0.325932273271908,0.0687241647134837,0.564075132655199,-0.0463561556490341
|
|
18
|
+
0.149514824313754,-0.0432286804033794,0.201390853832784,-0.106967551941103,-0.0514572563664625,-0.00280602487163196,-0.270179996516864,-0.0879584704793887,-0.305237775404374,-0.0593816209556079,-0.33416517856607,-0.030653172510377,-0.317623558230321,0.0445922081088851,-0.190250058281307,0.102949166991644,0.0357116058400723,0.093815105559048,0.197146084032189,0.064682968381647,0.316287611602981,0.0590414614416364,0.568862843743618,-0.0340853893213727
|
|
19
|
+
0.13503476751923,-0.0305489033282715,0.214887905663873,-0.112166306468745,-0.0689638677397935,-0.0186536162913546,-0.280413422890407,-0.0912533085304671,-0.313572212882353,-0.0548300125708402,-0.320384320522964,-0.0266163191606486,-0.302043695932442,0.0422584571645929,-0.184349607174229,0.0983361982418081,0.0350515973044025,0.0926918101737176,0.205255665721781,0.078895263390268,0.303503836889741,0.0673123380075626,0.575993354043161,-0.0454256006276205
|
|
20
|
+
0.117351723119529,-0.0316724466140988,0.194225485253863,-0.0945298264828337,-0.0346586880368417,-0.0190019309484117,-0.292077730008532,-0.0821858598247144,-0.312905382238149,-0.0470290877021094,-0.330018971723276,-0.0264425699049772,-0.306021211166636,0.0417426147155516,-0.167617814518391,0.0800651853002703,0.0244229435349089,0.0858135733645362,0.203232408172558,0.0611105307555309,0.315033023552012,0.0689199851144831,0.589034214058955,-0.0367901677732277
|
|
21
|
+
0.143605323363363,-0.0342063080260224,0.191385047832338,-0.108502411700261,-0.0229057312654263,-0.0141349513170622,-0.272870399991988,-0.0805576068147776,-0.30598776996233,-0.0572497994588059,-0.326035016046084,-0.0350581809274806,-0.321534244968704,0.0347731674481749,-0.194797608988799,0.0970912254352649,0.0143603889754147,0.0967830570702308,0.167925340698132,0.0792801251733152,0.391109614614267,0.0719228030535233,0.535745055739816,-0.0501411199361006
|
|
22
|
+
0.131744212182439,-0.03739455646015,0.166093022397068,-0.0987663013293264,-0.0341728704484698,-0.0101433381708672,-0.279718843168038,-0.0836438649916936,-0.309051211667077,-0.058904397047206,-0.324163059543707,-0.0400137048296675,-0.303487948074224,0.0264647363628917,-0.185580390835873,0.095011344197992,0.0159873868577088,0.10421012887431,0.178307899106798,0.0836235072691203,0.399234155111103,0.0774526638126421,0.544807648082273,-0.0578962176880473
|
|
23
|
+
0.147807629851722,-0.0164827841667505,0.189588818350347,-0.0944869624196662,-0.0437889269705729,-0.0107357839229577,-0.287539533521962,-0.0881214513069647,-0.31115778985566,-0.0641600816104619,-0.323038536250751,-0.0348703456327545,-0.313676134958751,0.0224662323400338,-0.184131214683595,0.0925996158966533,0.0253418013906593,0.102046011614273,0.186424608402565,0.0902329810758831,0.383295492637254,0.0713083015855625,0.530873785608745,-0.0697957334528524
|
|
24
|
+
0.153647376159325,-0.020431727728029,0.182619093583102,-0.0796445753329574,-0.0247826405131381,-0.00906783365740956,-0.281061345904913,-0.0985814638499958,-0.311967008668006,-0.0737472412733889,-0.326354135276543,-0.032676574266087,-0.312617436663754,0.040909295361185,-0.187640745336847,0.0987963118639652,0.00398999567306822,0.0987838243086389,0.18394492468525,0.0743038334177259,0.388635344170687,0.0692652620850676,0.53158657809177,-0.067909110928717
|
|
25
|
+
0.135180122192109,-0.0277572663150597,0.195141018647012,-0.0936247546319915,-0.0230875543961284,-0.00771735561206446,-0.274824865398752,-0.0983612317099473,-0.301511939210357,-0.0624294427287367,-0.322350588173022,-0.0362301121985144,-0.317602940237533,0.0313288122180709,-0.194374354790522,0.10436029043154,0.00589503282269214,0.105993559518104,0.177040877481215,0.0916544088674974,0.377554136735121,0.0649024589821233,0.542941054328165,-0.0721193668210218
|
|
26
|
+
0.138675505710165,-0.0336236477883656,0.17345111894043,-0.111900354410722,-0.0308520229911968,-0.0166256811613557,-0.273611672869251,-0.102879871722527,-0.300328879819731,-0.0577055276238293,-0.313473403109573,-0.0238174908244388,-0.313660509181314,0.0463592779537399,-0.193138075377785,0.0988084948443046,0.00326251065651431,0.103084104252784,0.172347321536344,0.0772711719717273,0.374862893943299,0.0695745611725007,0.562465212562098,-0.0485450366638172
|
|
27
|
+
0.106969665779488,-0.025856958400061,0.166308355035572,-0.120687994920954,-0.0365371177336535,-0.00316470665654708,-0.266243383902689,-0.121664417861239,-0.298572329293515,-0.0766089945872197,-0.316425125379163,-0.0319258371330362,-0.308418837468823,0.0507777330573774,-0.179316300812005,0.114092080646644,0.0137960366483514,0.121737141123456,0.170410887061585,0.08192140891833,0.395884317133286,0.0656423321364361,0.552143832931566,-0.0542617863231891
|
|
28
|
+
0.149292004821228,-0.0228286065495209,0.183779987608652,-0.0858031524939319,-0.0165784989304622,0.00681761716375695,-0.290173993412207,-0.0959850315397104,-0.322647443749081,-0.0633365072422927,-0.331001408551932,-0.0386311238305126,-0.324287557880093,0.0256059363875296,-0.166928185569034,0.096629658472761,0.0251185138884444,0.0981732819621186,0.189705414505897,0.0749993868404707,0.37137466304859,0.0610311468780916,0.532346504219998,-0.0566726060487589
|
|
29
|
+
0.127896863585268,-0.0216450243643287,0.165517024709056,-0.108941799578503,-0.0353045688269997,0.00352768687954919,-0.275680723776661,-0.0892135059240246,-0.303404303576894,-0.0744182916067185,-0.321114092930107,-0.0463354787737873,-0.320696255335676,0.0290641046029781,-0.190446295853523,0.10952024087128,0.0291462335778305,0.111974926307032,0.19646922835672,0.079122768712971,0.394660322771826,0.0575620725675343,0.532956567299163,-0.0502176996939821
|
|
30
|
+
0.141293270397397,-0.0225553275194414,0.201882493755316,-0.0889449580831494,-0.00658111805364107,-0.000416424044273128,-0.263775713343188,-0.076799736368609,-0.307664162632333,-0.0614968855854267,-0.331369083663825,-0.0467249021743065,-0.337350134467379,0.0221243864191163,-0.204325006597378,0.1058746188075,0.0187424943519655,0.108722148592604,0.187706600861078,0.0659335773306081,0.369681994394392,0.0539704851196333,0.531758364997596,-0.0596869824942541
|
|
31
|
+
0.13886181279869,-0.0349482237765752,0.179481198257805,-0.0890559542146744,-0.0259464975218204,-0.0103636934101408,-0.276821734526796,-0.0810955540085523,-0.305555726918596,-0.0541100867884242,-0.326439783315641,-0.036133805667092,-0.320475168490402,0.0274250671705275,-0.191323037371833,0.0842073264580067,0.00815231185852319,0.100084340014714,0.185847423814416,0.0846773600521131,0.401169963801191,0.0643913559848589,0.533049237614463,-0.0550781318147627
|
|
32
|
+
0.157692413265636,-0.0356253705965222,0.193232160852374,-0.0879269625855282,-0.034372877152837,-0.00238113251569142,-0.287347727442592,-0.0764597274229341,-0.30965862195039,-0.0585800801258403,-0.326400527004999,-0.0377961735062781,-0.323161940916121,0.0193807873818847,-0.182644761053005,0.0985642678695645,0.00934567113846771,0.0971570874138417,0.19096161836768,0.0726306121373311,0.383151658218943,0.0595215664909036,0.529202933676844,-0.048484874540733
|
|
33
|
+
0.138196459400304,-0.0180222374607762,0.178189309543462,-0.0772529493878801,-0.0357517194737357,-0.00142749766031571,-0.27918058654476,-0.0892545022015823,-0.299822352724037,-0.0583513231685918,-0.320456113294633,-0.0364669084260117,-0.316645824201135,0.0253794776833805,-0.205905620471642,0.0950511568303579,0.0221379892691116,0.097830374161442,0.184503194297695,0.067052997550602,0.384214696510803,0.0556347105123256,0.550520567688568,-0.0601732984329483
|
|
34
|
+
0.134515577655479,-0.0193633944051698,0.164690089055574,-0.0739083982809401,-0.0089035221006333,-0.00292629179576702,-0.281329389367487,-0.0826703893618447,-0.296500149810352,-0.058557296626759,-0.313709890940115,-0.0517792021356629,-0.31802459551809,0.0242136282171634,-0.208475311681052,0.101939401632753,0.013017351486192,0.108731706446713,0.179589239434986,0.0711321584479805,0.367281820401702,0.0551056940405295,0.567848781383797,-0.0719176161789961
|
|
35
|
+
0.150960300946652,-0.019997057831774,0.19130884213628,-0.0966557778293561,-0.0227229427844745,-0.00475685303419855,-0.283588299726287,-0.0907919146882904,-0.318184621115118,-0.0621652604115984,-0.329940215759164,-0.0370101626540505,-0.318223395821122,0.0289983198654783,-0.193731936804714,0.0890240816384824,0.0300259345208872,0.113751885235685,0.191321895770665,0.0793418369145334,0.38167940591982,0.0491462900929465,0.521095032716576,-0.0488853872978573
|
|
36
|
+
0.13399548091206,-0.0184856167813508,0.178329754457997,-0.084976313105427,-0.0394791951407522,0.00354601327939344,-0.276015352565975,-0.0914372531455867,-0.305390298073191,-0.0610456159637035,-0.31992832737134,-0.0361189579705607,-0.303714626661861,0.0223272843574739,-0.186109099017522,0.0942360392819029,-0.00284594897929147,0.104761365132991,0.178317850019297,0.0751018180412974,0.379362245675121,0.0659866091189811,0.563477516745456,-0.0738953722454119
|
|
37
|
+
0.138863504274602,-0.021159487954991,0.187551870004999,-0.0894011466090844,0.00184966944043035,-0.0152502493984006,-0.286559209226653,-0.0850659203285857,-0.311545998321594,-0.0637807524120329,-0.316599146650212,-0.0302693719693539,-0.310658674006599,0.0393550479219931,-0.209205974276545,0.0902608782990506,0.00535619306327634,0.099078115980101,0.170643009724424,0.0758368956631774,0.386004799869925,0.0515932619516263,0.544299956103946,-0.0511972711434999
|
|
38
|
+
0.112798237098144,-0.0269648041585922,0.181063765111181,-0.0964198246533053,-0.0253851225389048,-0.014377933408013,-0.278176591639292,-0.0993567439611229,-0.307159408502976,-0.0564513970035817,-0.318834542665386,-0.030589170364962,-0.306511888217522,0.0445119382594052,-0.188611326804482,0.0943990326898793,0.00818518684538839,0.096964803287204,0.177480017677183,0.066991088768427,0.385039236742021,0.0745151545172179,0.560112436894646,-0.0532221439725582
|
|
39
|
+
0.149779366366746,-0.0251711760377164,0.189379262752005,-0.084005428229185,-0.0237329068570753,-0.00921376181752187,-0.280458817143667,-0.0964889029847107,-0.313425230882473,-0.0641361342803545,-0.331042016167981,-0.0264072550079493,-0.320540311990258,0.0387798808620946,-0.190631132889862,0.0956004228135054,0.0287979791207372,0.0846559910852844,0.185670240169577,0.0716754840278115,0.364971269502444,0.0751039076423624,0.541232298019807,-0.0603930280736225
|
|
40
|
+
0.157529107486724,-0.0237544899217142,0.198648464222251,-0.0816710908889828,-0.00224816339529695,-0.00556009554250057,-0.289081970539683,-0.0766058866027405,-0.320086692544762,-0.0628945374622412,-0.330156224672225,-0.0317576518944146,-0.327136411362356,0.0243831431693207,-0.19678944617221,0.0913539261188511,0.0325515183639547,0.0916098510507909,0.174993458024619,0.0682139140313081,0.376953682636562,0.0563780087389382,0.524822677952422,-0.0496950907966166
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
8.89372,53.77644,9.2684,52.77072,5.56104,54.21028,1.8734,52.751,1.2818,53.18484,1.24236,53.32288,0.84796,54.70328,3.3524,55.76816,6.29068,55.709,8.874,55.25544,10.7474,55.43292,14.3956,52.751
|
|
2
|
+
8.679762,54.578186,8.935628,53.83027,5.451914,54.656914,1.987882,52.688714,1.515514,53.023308,1.338376,53.220128,1.239966,54.440412,3.24753,55.857516,6.219512,55.99529,8.75849,56.014972,10.903828,55.837834,14.033266,53.869634
|
|
3
|
+
9.805328,56.069026,10.137712,55.279614,6.64768,55.736642,3.448484,53.866982,3.01223,54.344784,2.825264,54.573298,2.721394,55.736642,4.549506,56.796116,7.520188,57.357014,9.846876,57.253144,11.986598,57.23237,14.74954,55.113422
|
|
4
|
+
9.637164,58.032944,9.952104,56.773184,6.109836,57.94896,2.645496,55.891352,2.015616,56.626212,1.721672,57.2141,1.868644,58.515852,3.632308,59.481668,6.865692,59.922584,9.76314,59.565652,11.883736,59.460672,15.369072,56.563224
|
|
5
|
+
11.035692,58.750089,11.33511,57.851835,8.255382,58.921185,4.555431,57.466869,3.956595,58.087092,3.871047,58.407897,3.871047,59.584182,5.795877,60.225792,9.068088,60.247179,11.420658,59.947761,12.768039,59.8836,15.847767,57.466869
|
|
6
|
+
7.946625,55.711139,8.4764,54.821117,4.979885,54.905881,2.479347,52.850354,2.076718,53.104646,1.737662,53.147028,1.335033,54.206578,2.712448,55.541611,5.382514,56.601161,7.861861,56.961408,9.663096,57.491183,13.13842,55.753521
|
|
7
|
+
8.849841,58.669611,9.396387,57.828771,5.990985,58.312254,2.501499,56.840784,2.1021,57.282225,1.933932,57.471414,1.975974,58.43838,3.741738,59.342283,6.642636,59.720661,8.849841,59.825766,10.951941,59.48943,13.579566,57.891834
|
|
8
|
+
9.331504,56.36904,10.154872,55.31344,6.671392,56.622384,2.195648,55.081208,1.68896,55.799016,1.520064,56.284592,1.5834,57.340192,3.715712,58.226896,7.241416,58.26912,9.774856,57.889104,11.949392,57.593536,15.432872,54.701192
|
|
9
|
+
9.840795,58.494532,10.179403,57.372893,6.031455,58.494532,2.624212,57.055448,2.137463,57.35173,1.566062,57.711501,1.69304,58.981281,3.745851,60.060594,7.110768,60.145246,10.073588,60.124083,11.787791,59.89129,15.131545,57.415219
|
|
10
|
+
9.56351,56.517395,9.90055,55.506275,5.919265,56.36994,1.81159,54.453025,1.369225,55.02178,1.22177,55.548405,1.200705,56.8755,3.265075,57.88662,6.551215,58.05514,9.43712,57.97088,11.62788,57.528515,15.41958,55.084975
|
|
11
|
+
8.211782,57.041432,8.337794,55.529288,4.83046,59.477664,0.336032,60.9058,0.462044,61.682874,0.378036,62.186922,1.176112,63.195018,4.053386,62.58596,6.993666,60.569768,9.76593,58.616582,11.803124,57.293456,15.01643,53.5551
|
|
12
|
+
8.691998,54.7196,9.660114,53.56207,5.240454,55.435164,1.641588,54.761692,0.926024,55.372026,0.610334,55.856084,0.926024,57.097798,3.220038,57.729178,6.503214,57.118844,9.533838,56.466418,11.449024,56.487464,15.88973,54.130312
|
|
13
|
+
10.707338,61.445782,11.724882,60.266356,7.030304,61.2839,2.89075,59.133182,2.220096,59.78071,2.058214,60.104474,2.127592,61.492034,4.39394,62.856468,7.932218,63.110854,11.21611,63.295862,13.228072,63.850886,18.5008,63.064602
|
|
14
|
+
8.470779,53.328738,9.155484,52.663596,6.397101,53.21136,4.460364,52.42884,4.166919,52.761411,3.990852,53.21136,4.264734,54.072132,5.164632,54.502518,7.453503,54.326451,8.842476,54.346014,9.820626,54.267762,12.735513,53.485242
|
|
15
|
+
11.532672,74.428448,12.226768,72.61312,7.635056,75.042456,2.776384,73.921224,2.322552,74.321664,1.681848,74.828888,2.215768,76.403952,4.965456,77.365008,9.396992,76.991264,12.28016,76.590824,14.389144,76.270472,19.48808,73.894528
|
|
16
|
+
8.9199,55.177452,9.675468,53.015688,5.56182,55.576224,0.797544,54.170028,0.482724,54.98856,0.272844,55.492272,0.5247,56.814516,3.022272,57.633048,6.737148,57.276252,9.86436,56.98242,11.984148,56.45772,16.454592,54.757692
|
|
17
|
+
9.914553,55.944909,10.459539,55.169352,7.524999,55.944909,5.009679,55.106469,4.716225,55.483767,4.527576,55.861065,4.527576,56.552778,5.743314,57.43314,8.405361,57.349296,10.124163,57.22353,11.73816,57.22353,14.484051,56.049714
|
|
18
|
+
10.661782,62.899858,11.616221,61.666071,6.867305,63.761181,2.677085,62.248046,2.025273,62.806742,1.489856,63.365438,1.839041,64.785457,4.283336,65.833012,8.566672,65.553664,11.616221,64.925131,13.874284,64.762178,18.6232,62.876579
|
|
19
|
+
8.313908,51.3448,9.735764,50.021684,4.83826,51.384296,1.303368,49.982188,0.710928,50.574628,0.572692,51.04858,0.829416,52.23346,2.784468,53.280104,6.51684,53.359096,9.419796,53.260356,11.098376,53.141868,15.818148,51.44354
|
|
20
|
+
8.50627,57.074997,9.813331,55.996153,5.912895,57.303214,1.514531,56.245117,1.161832,56.84678,0.871374,57.199479,1.286314,58.361311,3.651472,59.004468,6.929498,59.087456,9.979307,58.651769,11.888031,58.776251,16.556106,56.950515
|
|
21
|
+
10.310018,55.686696,11.086944,54.678792,7.895248,55.770688,4.388582,54.510808,3.88463,54.80478,3.56966,55.098752,3.548662,56.106656,5.291496,57.156556,8.29421,57.408532,10.519998,57.345538,13.732692,57.513522,15.95848,55.938672
|
|
22
|
+
8.168564,57.411531,8.189617,56.043086,5.579045,59.411566,0.694749,60.42211,0.42106,61.116859,0.336848,61.580025,1.305286,62.52741,3.957964,62.611622,7.494868,60.906329,10.084387,59.053665,13.810768,56.906259,15.052895,53.243037
|
|
23
|
+
8.514847,55.942754,9.163398,54.833941,5.732354,55.921833,2.238547,54.666573,1.88289,55.001309,1.694601,55.419729,1.799206,56.256569,3.640254,57.344461,6.673799,57.595513,9.016951,57.511829,11.883128,57.344461,14.100754,55.377887
|
|
24
|
+
7.52874,58.00074,7.90728,57.24366,5.23647,58.12692,1.95579,56.94924,1.55622,57.26469,1.36695,57.79044,1.53519,58.73679,3.13347,59.49387,5.59398,59.5149,7.90728,59.22048,10.53603,59.17842,12.38667,57.43293
|
|
25
|
+
9.660255,58.00344,10.498455,57.16524,7.5438,58.17108,4.253865,56.809005,3.876675,57.270015,3.583305,57.605295,3.60426,58.50636,5.19684,59.55411,7.858125,59.700795,10.14222,59.616975,12.82446,59.38647,15.108555,57.66816
|
|
26
|
+
8.374318,56.474044,8.83722,55.106379,5.554824,57.02111,1.346624,55.948019,0.967886,56.747577,0.799558,57.336725,0.904763,58.515021,3.008863,59.209374,6.3123,58.977923,9.110753,58.28357,12.498354,57.841709,15.465135,55.569281
|
|
27
|
+
8.634288,57.98208,9.66368,56.133376,5.945264,58.549296,1.491568,56.532528,0.924352,57.414864,0.63024,58.276192,0.861328,59.830784,3.36128,60.902192,7.016672,60.860176,9.936784,59.956832,14.1804,59.431632,17.01648,57.015712
|
|
28
|
+
9.9957,57.0141,10.6392,55.74855,6.7353,57.7005,1.26555,55.83435,0.6435,56.4993,0.49335,56.99265,0.66495,58.2582,3.8181,59.56665,7.61475,59.48085,10.8537,58.92315,14.43585,58.53705,17.5461,56.1132
|
|
29
|
+
9.29305,56.80955,9.860725,55.37985,6.664925,57.293125,2.73325,55.905475,2.291725,56.157775,2.0184,56.620325,2.06045,57.839775,4.205,59.08025,7.758225,59.017175,10.449425,58.40745,13.645225,57.965925,15.831825,56.157775
|
|
30
|
+
8.395014,57.541704,9.238734,56.52924,6.243528,57.963564,2.425695,57.014379,1.792905,57.267495,1.455417,57.499518,1.413231,58.511982,3.417066,59.651004,6.686481,59.545539,9.133269,58.807284,11.790987,58.511982,14.090124,56.74017
|
|
31
|
+
9.536103,56.41668,10.188684,55.532538,6.862626,56.8377,2.778732,55.721997,2.31561,56.164068,1.978794,56.458782,2.084049,57.490281,4.189149,58.395474,7.431003,58.627035,10.31499,58.353372,13.809456,57.995505,15.935607,56.037762
|
|
32
|
+
9.28998,57.66999,9.43845,56.39739,6.1509,60.06672,0.91203,61.10601,0.67872,61.63626,0.57267,62.16651,1.16655,63.16338,4.43289,63.26943,7.86891,61.44537,10.90194,59.30316,14.23191,57.267,15.84387,53.95824
|
|
33
|
+
9.45411,57.01684,10.10108,56.05682,6.63666,57.28815,2.69223,55.86899,2.35831,56.36987,2.02439,56.72466,2.087,57.72642,3.88182,58.8534,7.57581,58.89514,10.20543,58.39426,13.44028,58.20643,16.13251,56.32813
|
|
34
|
+
7.130627,56.33819,7.546407,55.631364,5.238828,56.504502,1.683909,55.361107,1.476019,55.672942,1.24734,55.756098,1.164184,56.75397,2.577836,57.814209,5.488296,57.980521,7.69193,57.543952,10.165821,57.398429,12.847602,55.797676
|
|
35
|
+
9.093168,58.074191,9.745687,56.790202,6.209455,58.368877,1.852312,57.000692,1.283989,57.484819,1.094548,57.905799,1.305038,59.000347,3.388889,59.968601,7.114562,60.326434,9.787785,59.716013,12.945135,59.168739,15.239476,57.505868
|
|
36
|
+
8.076244,58.161642,8.837356,57.210252,5.412352,58.267352,1.945064,56.512566,1.458798,56.935406,1.205094,57.29482,1.37423,58.203926,3.06559,59.451304,5.835192,59.853002,8.625936,59.641582,11.691526,59.768434,14.672548,57.886796
|
|
37
|
+
8.4621,56.89815,9.28305,55.97195,6.4413,56.77185,2.3155,55.29835,1.91555,55.572,1.78925,56.05615,1.7682,57.0876,3.17855,57.99275,6.315,58.45585,8.77785,58.37165,11.97745,58.3506,14.46135,57.0876
|
|
38
|
+
8.58024,57.72735,9.65277,56.27628,6.07767,58.31619,1.21974,57.4119,0.79914,58.27413,0.65193,58.77885,1.07253,60.12477,3.3648,60.73464,6.98196,60.27198,10.01028,59.28357,13.83774,58.884,16.71885,56.08701
|
|
39
|
+
9.389055,56.735211,10.000926,55.849053,6.75168,56.946201,2.869464,55.574766,2.363088,56.060043,2.088801,56.629716,2.236494,57.621369,4.198701,58.507527,7.532343,58.380933,9.91653,58.212141,12.638301,58.296537,15.338973,56.271033
|
|
40
|
+
9.494001,56.669292,10.125531,55.57464,6.694218,57.25872,1.494621,56.479833,0.968346,56.774547,0.84204,57.342924,0.989397,58.332321,3.410262,59.300667,7.473105,58.921749,9.957123,58.269168,13.514742,57.721842,15.956658,55.595691
|
|
File without changes
|