接特征工程和Kaggle赛题分析
Indoor Location & Navigation
室内导航和定位
通过智能手机的信号日志,识别具体用户在购物中心的位置。当前的定位算法在多层建筑中精度较差,且大部分是基于GPS信息构建。
这是一个回归问题,使用MSE进行评价,对于测试数据集,需要预测具体的楼层和位置坐标。
赛题数据:手机WIFI信号、地磁场信号、蓝牙信号、真实的室内位置。我们先来看一下文件分布
数据下载地址:https://www.kaggle.com/c/indoor-location-navigation/data
这个train文件夹当然是训练数据集,按照场地和楼层构成的数据,test文件夹当然是测试数据集,给定场地信息的信号数据。
在train文件夹下的很长一串的字符串代表不同的场地,再下面的子文件夹B1、F1等等是楼层。
再点进楼层文件夹是日志信息。点开日志信息,我们可以看到这样一些信息
我们可以看到它是一些国内商场的日志,所有的格式都是以txt的形式给出。它记录的是一些手机信息。前面是一些注释,比如手机型号,产生的时间,下面的非#开始的就是记录的一些日志,第一列是时间戳1578482906560,第二列是信号类型TYPE_WAYPOINT,第三列和第四列相当于具体的信号的取值。通过对信号类型的理解,而我们的标签target——具体定位的位置就为TYPE_WAYPOINT。而下面行的信息是一些其他类型的信息,不同的数据,记录的列数可能是不一样的。现在我们来看一下test文件夹。
我们可以看到test文件夹下面只给定了场地,并没有分楼层。点击一个文本文件,我们可以看到
这里没有TYPE_WAYPOINT信息,我们需要使用其他这些信息,比如说传感信号,Wifi信号去预测TYPE_WAYPOINT的值(具体的位置)。现在我们来看一下metadata文件夹。
metadata里面包含了一些场地楼层的原始信息,点开floor_image.png
floor_info.json存储了这一层的长和宽
代码语言:javascript复制{"map_info": {"height": 204.53342955266643, "width": 270.34143433711995}}
geojson_map.json里面是具体的建筑物的序列化信息
现在我们来进行一定的数据分析,首先我们先将部分数据给读取出来
代码语言:javascript复制INPUT_PATH = "/Users/admin/Downloads/indoor-location-navigation/"
import os
import json
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
if __name__ == "__main__":
pd.set_option('display.max_columns', 1000)
pd.set_option('display.width', 1000)
pd.set_option('display.max_colwidth', 1000)
def load_trace_as_dataframe(filepath):
# 读取日志文件
# 设置读取的字段名为time,type以及后面的取值,最多为8个
names = ['time', 'type'] [f'col_{i}' for i in range(1, 9)]
trace_df = pd.read_csv(filepath, sep='t', comment='#', header=None, names=names)
trace_df.sort_values(by='time', inplace=True)
trace_df.reset_index(drop=True, inplace=True)
return trace_df
df = load_trace_as_dataframe(INPUT_PATH "train/5a0546857ecc773753327266/B1/5e15bda71506f2000638feb5.txt")
print(df.head())
运行结果
代码语言:javascript复制 time type col_1 col_2 col_3 col_4 col_5 col_6 col_7 col_8
0 1578482906560 TYPE_WAYPOINT 154.68399 81.80792 NaN NaN NaN NaN NaN NaN
1 1578482906672 TYPE_ACCELEROMETER 0.056015015 4.2749786 8.278137 2.0 NaN NaN NaN NaN
2 1578482906672 TYPE_MAGNETIC_FIELD 4.663086 -44.032288 -7.371521 3.0 NaN NaN NaN NaN
3 1578482906672 TYPE_GYROSCOPE 0.046081543 0.10348511 -0.103652954 3.0 NaN NaN NaN NaN
4 1578482906672 TYPE_ROTATION_VECTOR 0.0012338709 0.24022351 0.9687757 3.0 NaN NaN NaN NaN
现在我们来看一下各种类型信息的数量统计
代码语言:javascript复制INPUT_PATH = "/Users/admin/Downloads/indoor-location-navigation/"
import os
import json
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
if __name__ == "__main__":
pd.set_option('display.max_columns', 1000)
pd.set_option('display.width', 1000)
pd.set_option('display.max_colwidth', 1000)
def load_trace_as_dataframe(filepath):
# 读取日志文件
# 设置读取的字段名为time,type以及后面的取值,最多为8个
names = ['time', 'type'] [f'col_{i}' for i in range(1, 9)]
trace_df = pd.read_csv(filepath, sep='t', comment='#', header=None, names=names)
trace_df.sort_values(by='time', inplace=True)
trace_df.reset_index(drop=True, inplace=True)
return trace_df
df = load_trace_as_dataframe(INPUT_PATH "train/5a0546857ecc773753327266/B1/5e15bda71506f2000638feb5.txt")
# print(df.head())
print(df['type'].value_counts())
运行结果
代码语言:javascript复制TYPE_ACCELEROMETER_UNCALIBRATED 1399
TYPE_GYROSCOPE_UNCALIBRATED 1399
TYPE_MAGNETIC_FIELD_UNCALIBRATED 1399
TYPE_ROTATION_VECTOR 1399
TYPE_MAGNETIC_FIELD 1399
TYPE_ACCELEROMETER 1399
TYPE_GYROSCOPE 1399
TYPE_WIFI 1279
TYPE_BEACON 97
TYPE_WAYPOINT 4
Name: type, dtype: int64
通过结果,我们可以发现,我们的标签target——TYPE_WAYPOINT的数量信息是比较少的。我们可以看一下在日志中,位置信息TYPE_WAYPOINT是如何随着时间发生改变的。
代码语言:javascript复制INPUT_PATH = "/Users/admin/Downloads/indoor-location-navigation/"
import os
import json
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
if __name__ == "__main__":
pd.set_option('display.max_columns', 1000)
pd.set_option('display.width', 1000)
pd.set_option('display.max_colwidth', 1000)
def load_trace_as_dataframe(filepath):
# 读取日志文件
# 设置读取的字段名为time,type以及后面的取值,最多为8个
names = ['time', 'type'] [f'col_{i}' for i in range(1, 9)]
trace_df = pd.read_csv(filepath, sep='t', comment='#', header=None, names=names)
trace_df.sort_values(by='time', inplace=True)
trace_df.reset_index(drop=True, inplace=True)
return trace_df
df = load_trace_as_dataframe(INPUT_PATH "train/5a0546857ecc773753327266/B1/5e15bda71506f2000638feb5.txt")
# print(df.head())
# print(df['type'].value_counts())
print(df[df['type'] == 'TYPE_WAYPOINT'])
运行结果
代码语言:javascript复制 time type col_1 col_2 col_3 col_4 col_5 col_6 col_7 col_8
0 1578482906560 TYPE_WAYPOINT 154.68399 81.80792 NaN NaN NaN NaN NaN NaN
1946 1578482911664 TYPE_WAYPOINT 151.99818 81.02271 NaN NaN NaN NaN NaN NaN
5818 1578482921653 TYPE_WAYPOINT 151.31499 75.86274 NaN NaN NaN NaN NaN NaN
10035 1578482932281 TYPE_WAYPOINT 154.68399 81.80792 NaN NaN NaN NaN NaN NaN
接下来,我们定义一些信息抽取的一些方法
代码语言:javascript复制INPUT_PATH = "/Users/admin/Downloads/indoor-location-navigation/"
import os
import json
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
if __name__ == "__main__":
pd.set_option('display.max_columns', 1000)
pd.set_option('display.width', 1000)
pd.set_option('display.max_colwidth', 1000)
def load_trace_as_dataframe(filepath):
# 读取日志文件
# 设置读取的字段名为time,type以及后面的取值,最多为8个
names = ['time', 'type'] [f'col_{i}' for i in range(1, 9)]
trace_df = pd.read_csv(filepath, sep='t', comment='#', header=None, names=names)
trace_df.sort_values(by='time', inplace=True)
trace_df.reset_index(drop=True, inplace=True)
return trace_df
# df = load_trace_as_dataframe(INPUT_PATH "train/5a0546857ecc773753327266/B1/5e15bda71506f2000638feb5.txt")
# print(df.head())
# print(df['type'].value_counts())
# print(df[df['type'] == 'TYPE_WAYPOINT'])
def extract_feature_df(trace_df, feature_name, col_names=('x', 'y', 'z', 'accuracy')):
# 信息抽取
# 给定类型名称的情况下筛选出该类型的信息
feature_df = trace_df[trace_df['type'] == feature_name].copy()
for i, col in enumerate(col_names, start=1):
feature_df[col] = feature_df[f'col_{i}'].astype('float64')
feature_df.drop(columns=[f'col_{i}' for i in range(1, 9)], inplace=True)
feature_df.drop(columns=['type'], inplace=True)
feature_df.reset_index(drop=True, inplace=True)
return feature_df
def load_points(filepath):
# 提取TYPE_WAYPOINT信息
trace_df = load_trace_as_dataframe(filepath)
points_df = extract_feature_df(trace_df, 'TYPE_WAYPOINT', col_names=('x', 'y'))
return points_df
df = load_points(INPUT_PATH "train/5a0546857ecc773753327266/B1/5e15bda71506f2000638feb5.txt")
print(df)
运行结果
代码语言:javascript复制 time x y
0 1578482906560 154.68399 81.80792
1 1578482911664 151.99818 81.02271
2 1578482921653 151.31499 75.86274
3 1578482932281 154.68399 81.80792
现在我们将得到的这些坐标轨迹画在原始的楼层平面图上
代码语言:javascript复制INPUT_PATH = "/Users/admin/Downloads/indoor-location-navigation/"
import os
import json
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
if __name__ == "__main__":
pd.set_option('display.max_columns', 1000)
pd.set_option('display.width', 1000)
pd.set_option('display.max_colwidth', 1000)
def load_trace_as_dataframe(filepath):
# 读取日志文件
# 设置读取的字段名为time,type以及后面的取值,最多为8个
names = ['time', 'type'] [f'col_{i}' for i in range(1, 9)]
trace_df = pd.read_csv(filepath, sep='t', comment='#', header=None, names=names)
trace_df.sort_values(by='time', inplace=True)
trace_df.reset_index(drop=True, inplace=True)
return trace_df
# df = load_trace_as_dataframe(INPUT_PATH "train/5a0546857ecc773753327266/B1/5e15bda71506f2000638feb5.txt")
# print(df.head())
# print(df['type'].value_counts())
# print(df[df['type'] == 'TYPE_WAYPOINT'])
def extract_feature_df(trace_df, feature_name, col_names=('x', 'y', 'z', 'accuracy')):
# 信息抽取
# 给定类型名称的情况下筛选出该类型的信息
feature_df = trace_df[trace_df['type'] == feature_name].copy()
for i, col in enumerate(col_names, start=1):
feature_df[col] = feature_df[f'col_{i}'].astype('float64')
feature_df.drop(columns=[f'col_{i}' for i in range(1, 9)], inplace=True)
feature_df.drop(columns=['type'], inplace=True)
feature_df.reset_index(drop=True, inplace=True)
return feature_df
def load_points(filepath):
# 提取TYPE_WAYPOINT信息
trace_df = load_trace_as_dataframe(filepath)
points_df = extract_feature_df(trace_df, 'TYPE_WAYPOINT', col_names=('x', 'y'))
return points_df
# df = load_points(INPUT_PATH "train/5a0546857ecc773753327266/B1/5e15bda71506f2000638feb5.txt")
# print(df)
def visualize_many_traces_on_the_map(traces_dataframes, map_images, width, height,
traces_filenames=None, figsize=None):
# 在地图上绘制多个坐标
fig = plt.figure(figsize=figsize)
ax = plt.subplot(111)
plt.imshow(map_images, extent=[0, width, 0, height])
if traces_filenames:
for filename, points in zip(traces_filenames, traces_dataframes):
plt.scatter(points['x'], points['y'], label=filename)
plt.plot(points['x'], points['y'])
ax.legend(loc='center left', bbox_to_anchor=(1, 0.5))
else:
for points in traces_dataframes:
plt.scatter(points['x'], points['y'])
plt.plot(points['x'], points['y'])
plt.show()
data_path = INPUT_PATH
print(os.listdir(data_path))
floor = "5a0546857ecc773753327266/B1"
floor_metadata_dir = os.path.join(data_path, 'metadata', floor)
floor_train_dir = os.path.join(data_path, 'train', floor)
print(os.listdir(floor_metadata_dir))
paths = []
for filename in os.listdir(floor_train_dir):
if '.txt' not in filename:
continue
path = os.path.join(floor_train_dir, filename)
points = load_points(path)
paths.append((filename, points))
paths = sorted(paths, key=lambda path: len(path[1]), reverse=True)
paths = paths[:20]
traces_dataframes = [trace for filename, trace in paths]
traces_filenames = [filename for filename, trace in paths]
MAP_IMAGE = plt.imread(os.path.join(floor_metadata_dir, 'floor_image.png'))
with open(os.path.join(floor_metadata_dir, 'floor_info.json')) as f:
content = f.read()
floor_info = json.loads(content)
MAP_HEIGHT = float(floor_info['map_info']['height'])
MAP_WIDTH = float(floor_info['map_info']['width'])
print(floor_info)
visualize_many_traces_on_the_map(traces_dataframes, MAP_IMAGE, MAP_WIDTH, MAP_HEIGHT,
traces_filenames=traces_filenames, figsize=(15, 12))
运行结果
代码语言:javascript复制['.DS_Store', 'test', 'train', 'metadata', 'sample_submission.csv']
['floor_image.png', 'floor_info.json', 'geojson_map.json']
{'map_info': {'height': 204.53342955266643, 'width': 270.34143433711995}}
当然我们也可以绘制单个手机用户的位置轨迹
代码语言:javascript复制INPUT_PATH = "/Users/admin/Downloads/indoor-location-navigation/"
import os
import json
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
if __name__ == "__main__":
pd.set_option('display.max_columns', 1000)
pd.set_option('display.width', 1000)
pd.set_option('display.max_colwidth', 1000)
def load_trace_as_dataframe(filepath):
# 读取日志文件
# 设置读取的字段名为time,type以及后面的取值,最多为8个
names = ['time', 'type'] [f'col_{i}' for i in range(1, 9)]
trace_df = pd.read_csv(filepath, sep='t', comment='#', header=None, names=names)
trace_df.sort_values(by='time', inplace=True)
trace_df.reset_index(drop=True, inplace=True)
return trace_df
# df = load_trace_as_dataframe(INPUT_PATH "train/5a0546857ecc773753327266/B1/5e15bda71506f2000638feb5.txt")
# print(df.head())
# print(df['type'].value_counts())
# print(df[df['type'] == 'TYPE_WAYPOINT'])
def extract_feature_df(trace_df, feature_name, col_names=('x', 'y', 'z', 'accuracy')):
# 信息抽取
# 给定类型名称的情况下筛选出该类型的信息
feature_df = trace_df[trace_df['type'] == feature_name].copy()
for i, col in enumerate(col_names, start=1):
feature_df[col] = feature_df[f'col_{i}'].astype('float64')
feature_df.drop(columns=[f'col_{i}' for i in range(1, 9)], inplace=True)
feature_df.drop(columns=['type'], inplace=True)
feature_df.reset_index(drop=True, inplace=True)
return feature_df
def load_points(filepath):
# 提取TYPE_WAYPOINT信息
trace_df = load_trace_as_dataframe(filepath)
points_df = extract_feature_df(trace_df, 'TYPE_WAYPOINT', col_names=('x', 'y'))
return points_df
# df = load_points(INPUT_PATH "train/5a0546857ecc773753327266/B1/5e15bda71506f2000638feb5.txt")
# print(df)
def visualize_many_traces_on_the_map(traces_dataframes, map_images, width, height,
traces_filenames=None, figsize=None):
# 在地图上绘制多个手机用户坐标轨迹
fig = plt.figure(figsize=figsize)
ax = plt.subplot(111)
plt.imshow(map_images, extent=[0, width, 0, height])
if traces_filenames:
for filename, points in zip(traces_filenames, traces_dataframes):
plt.scatter(points['x'], points['y'], label=filename)
plt.plot(points['x'], points['y'])
ax.legend(loc='center left', bbox_to_anchor=(1, 0.5))
else:
for points in traces_dataframes:
plt.scatter(points['x'], points['y'])
plt.plot(points['x'], points['y'])
plt.show()
data_path = INPUT_PATH
# print(os.listdir(data_path))
floor = "5a0546857ecc773753327266/B1"
floor_metadata_dir = os.path.join(data_path, 'metadata', floor)
floor_train_dir = os.path.join(data_path, 'train', floor)
# print(os.listdir(floor_metadata_dir))
paths = []
for filename in os.listdir(floor_train_dir):
if '.txt' not in filename:
continue
path = os.path.join(floor_train_dir, filename)
points = load_points(path)
paths.append((filename, points))
paths = sorted(paths, key=lambda path: len(path[1]), reverse=True)
# 只绘制前20个轨迹
paths = paths[:20]
traces_dataframes = [trace for filename, trace in paths]
traces_filenames = [filename for filename, trace in paths]
MAP_IMAGE = plt.imread(os.path.join(floor_metadata_dir, 'floor_image.png'))
with open(os.path.join(floor_metadata_dir, 'floor_info.json')) as f:
content = f.read()
floor_info = json.loads(content)
MAP_HEIGHT = float(floor_info['map_info']['height'])
MAP_WIDTH = float(floor_info['map_info']['width'])
# print(floor_info)
# visualize_many_traces_on_the_map(traces_dataframes, MAP_IMAGE, MAP_WIDTH, MAP_HEIGHT,
# traces_filenames=traces_filenames, figsize=(15, 12))
def visualize_single_trace_on_the_map(points_df, map_image, width, height,
scaling_coef=0.3, figsize=None):
# 在地图上绘制单个手机用户坐标轨迹
fig = plt.figure(figsize=figsize)
ax = plt.subplot(111)
plt.imshow(map_image, extent=[0, width, 0, height])
plt.plot(points_df['x'], points_df['y'], linewidth=5, linestyle='-', color='blue')
for i in range(len(points_df)):
ax.text(points_df.loc[i, 'x'], points_df.loc[i, 'y'], i,
ha='center', size=15, bbox=dict(boxstyle='circle, pad=0.3', fc='cyan', lw=2))
x_min, x_max = points_df['x'].min(), points_df['x'].max()
y_min, y_max = points_df['y'].min(), points_df['y'].max()
ax.set_xlim(x_min - scaling_coef * (x_max - x_min), x_max scaling_coef * (x_max - x_min))
ax.set_ylim(y_min - scaling_coef * (y_max - y_min), y_max scaling_coef * (y_max - y_min))
plt.show()
filename = "5e15bda71506f2000638feb5.txt"
trace_filepath = os.path.join(floor_train_dir, filename)
trace_df = load_trace_as_dataframe(trace_filepath)
points_df = extract_feature_df(trace_df, 'TYPE_WAYPOINT', col_names=('x', 'y'))
visualize_single_trace_on_the_map(points_df, MAP_IMAGE, MAP_WIDTH, MAP_HEIGHT, figsize=(10, 8))
运行结果
这是一个典型的非结构化文本数据,现在我们来看看如何进一步分析和建模。
现在我们来看一下我们需要提交的数据集的样子。
代码语言:javascript复制INPUT_PATH = "/Users/admin/Downloads/indoor-location-navigation/"
import os
import json
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
if __name__ == "__main__":
pd.set_option('display.max_columns', 1000)
pd.set_option('display.width', 1000)
pd.set_option('display.max_colwidth', 1000)
ssubm = pd.read_csv(INPUT_PATH "sample_submission.csv")
ssubm_df = ssubm['site_path_timestamp'].apply(lambda x: pd.Series(x.split('_')))
used_buildings = sorted(ssubm_df[0].value_counts().index.tolist())
# 对楼层编码
floor_map = {"B2": -2, "B1": -1, "F1": 0, "F2": 1, "F3": 2, "F4": 3, "F5": 4, "F6": 5, "F7": 6, "F8": 7, "F9": 8,
"1F": 0, "2F": 1, "3F": 2, "4F": 3, "5F": 4, "6F": 5, "7F": 6, "8F": 7, "9F": 8}
print(ssubm)
print(ssubm_df)
print(used_buildings)
运行结果
代码语言:javascript复制 site_path_timestamp floor x y
0 5a0546857ecc773753327266_046cfa46be49fc10834815c6_0000000000009 0 75.0 75.0
1 5a0546857ecc773753327266_046cfa46be49fc10834815c6_0000000009017 0 75.0 75.0
2 5a0546857ecc773753327266_046cfa46be49fc10834815c6_0000000015326 0 75.0 75.0
3 5a0546857ecc773753327266_046cfa46be49fc10834815c6_0000000018763 0 75.0 75.0
4 5a0546857ecc773753327266_046cfa46be49fc10834815c6_0000000022328 0 75.0 75.0
... ... ... ... ...
10128 5dc8cea7659e181adb076a3f_fd64de8c4a2fc5ebb0e9f412_0000000082589 0 75.0 75.0
10129 5dc8cea7659e181adb076a3f_fd64de8c4a2fc5ebb0e9f412_0000000085758 0 75.0 75.0
10130 5dc8cea7659e181adb076a3f_fd64de8c4a2fc5ebb0e9f412_0000000090895 0 75.0 75.0
10131 5dc8cea7659e181adb076a3f_fd64de8c4a2fc5ebb0e9f412_0000000096899 0 75.0 75.0
10132 5dc8cea7659e181adb076a3f_fd64de8c4a2fc5ebb0e9f412_0000000100447 0 75.0 75.0
[10133 rows x 4 columns]
0 1 2
0 5a0546857ecc773753327266 046cfa46be49fc10834815c6 0000000000009
1 5a0546857ecc773753327266 046cfa46be49fc10834815c6 0000000009017
2 5a0546857ecc773753327266 046cfa46be49fc10834815c6 0000000015326
3 5a0546857ecc773753327266 046cfa46be49fc10834815c6 0000000018763
4 5a0546857ecc773753327266 046cfa46be49fc10834815c6 0000000022328
... ... ... ...
10128 5dc8cea7659e181adb076a3f fd64de8c4a2fc5ebb0e9f412 0000000082589
10129 5dc8cea7659e181adb076a3f fd64de8c4a2fc5ebb0e9f412 0000000085758
10130 5dc8cea7659e181adb076a3f fd64de8c4a2fc5ebb0e9f412 0000000090895
10131 5dc8cea7659e181adb076a3f fd64de8c4a2fc5ebb0e9f412 0000000096899
10132 5dc8cea7659e181adb076a3f fd64de8c4a2fc5ebb0e9f412 0000000100447
[10133 rows x 3 columns]
['5a0546857ecc773753327266', '5c3c44b80379370013e0fd2b', '5d27075f03f801723c2e360f', '5d27096c03f801723c31e5e0', '5d27097f03f801723c320d97', '5d27099f03f801723c32511d', '5d2709a003f801723c3251bf', '5d2709b303f801723c327472', '5d2709bb03f801723c32852c', '5d2709c303f801723c3299ee', '5d2709d403f801723c32bd39', '5d2709e003f801723c32d896', '5da138274db8ce0c98bbd3d2', '5da1382d4db8ce0c98bbe92e', '5da138314db8ce0c98bbf3a0', '5da138364db8ce0c98bc00f1', '5da1383b4db8ce0c98bc11ab', '5da138754db8ce0c98bca82f', '5da138764db8ce0c98bcaa46', '5da1389e4db8ce0c98bd0547', '5da138b74db8ce0c98bd4774', '5da958dd46f8266d0737457b', '5dbc1d84c1eb61796cf7c010', '5dc8cea7659e181adb076a3f']
其实在我们的数据集中,除了标签target——TYPE_WAYPOINT以外,最为关键的一个特征就是Wifi信息——TYPE_WIFI ,我们可以来看一下TYPE_WIFI的一些数据
代码语言:javascript复制INPUT_PATH = "/Users/admin/Downloads/indoor-location-navigation/"
import os
import json
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
if __name__ == "__main__":
pd.set_option('display.max_columns', 1000)
pd.set_option('display.width', 1000)
pd.set_option('display.max_colwidth', 1000)
def load_trace_as_dataframe(filepath):
# 读取日志文件
# 设置读取的字段名为time,type以及后面的取值,最多为8个
names = ['time', 'type'] [f'col_{i}' for i in range(1, 9)]
trace_df = pd.read_csv(filepath, sep='t', comment='#', header=None, names=names)
trace_df.sort_values(by='time', inplace=True)
trace_df.reset_index(drop=True, inplace=True)
return trace_df
df = load_trace_as_dataframe(INPUT_PATH "train/5a0546857ecc773753327266/B1/5e15bda71506f2000638feb5.txt")
# print(df.head())
# print(df['type'].value_counts())
print(df[df['type'] == 'TYPE_WIFI'])
运行结果
代码语言:javascript复制 time type col_1 col_2 col_3 col_4 col_5 col_6 col_7 col_8
256 1578482907398 TYPE_WIFI 66afd751525c9f51702fa1d2d906799c2e0c1d05 cefdb0c230cb725c985a620e6bbe9199f083518c -81 2457.0 1.578483e 12 NaN NaN NaN
257 1578482907398 TYPE_WIFI b6ffe5619e02871fcd04f61c9bb4b5c53a3f46b7 3a6b2bc5f25fcaf92ec3cdfe2cc40889ef2fd6ab -81 2472.0 1.578483e 12 NaN NaN NaN
258 1578482907398 TYPE_WIFI ea4a14e0d5bcdd20703fbe3bbc90f70b171ff140 591ea59cf88e3397db5d60eb00a5147edd69399a -82 5765.0 1.578483e 12 NaN NaN NaN
259 1578482907398 TYPE_WIFI b6ffe5619e02871fcd04f61c9bb4b5c53a3f46b7 c4ba813f5d699add984dc85cd5792f6d8a66d33a -82 2452.0 1.578483e 12 NaN NaN NaN
260 1578482907398 TYPE_WIFI 5731b8e08abc69d4c4d685c58164059207c93310 d20af782ef6c1db82795ae9b7ba39866dc298bd7 -82 2452.0 1.578483e 12 NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ...
11077 1578482934609 TYPE_WIFI 7182afc4e5c212133d5d7d76eb3df6c24618302b 9e716ffd84238082386afa4fd72cf4c8b68cbc93 -78 2472.0 1.578483e 12 NaN NaN NaN
11078 1578482934609 TYPE_WIFI d839a45ebe64ab48b60a407d837fb01d3c0dfef9 6e388d1db5ba8dd9de80522a4ddf50402cf443b3 -79 5785.0 1.578483e 12 NaN NaN NaN
11079 1578482934609 TYPE_WIFI 66afd751525c9f51702fa1d2d906799c2e0c1d05 cefdb0c230cb725c985a620e6bbe9199f083518c -79 2457.0 1.578483e 12 NaN NaN NaN
11080 1578482934609 TYPE_WIFI 090f27e83f72bc23d60baed6a73c55161f7ee127 d6a858af60bc6f39894eb9118b1aa44f8cfd6be2 -79 5765.0 1.578483e 12 NaN NaN NaN
11081 1578482934609 TYPE_WIFI b9f0208be00bd8b337be7f12e02e3a3ce846e22b f920a2e4cb52165850990d9d37d391b630f7de14 -78 5805.0 1.578483e 12 NaN NaN NaN
[1279 rows x 10 columns]
这里col_1叫ssid,表示接入Wifi的设备的名称;col_2叫bssid,表示接入某个无线点的时候的mac地址,如果一个用户在商城中,如果手机不变的情况下,ssid是不变的,但是接入到不同的Wifi的情况下,bssid会发生变化;col_3叫RSSI,相当于是我们对在具体一个Wifi的强度的信息。我们主要要用到bssid和RSSI这两列来构造我们的特征。在原始的训练集里面,它给定了在一定时间内,用户手机所接收到的Wifi信号以及一定时间内用户手机的TYPE_WAYPOINT坐标。那我们就可以找到在时间最近的Wifi信号的强度RSSI是什么。相当于是如果对测试集进行预测,我们就可以直接去找测试集手机接收到的RSSI信号在训练集对应到的数据集里面跟它相隔最近的TYPE_WAYPOINT到底是什么。就相当于找到最近的Wifi信号,然后再通过Wifi信号找到它对应的TYPE_WAYPOINT坐标即可。
我们现在来看一下某场地内有多少个活跃的(超过1000个手机用户接入)WIFI接入点。
代码语言:javascript复制INPUT_PATH = "/Users/admin/Downloads/indoor-location-navigation/"
import os
import json
import numpy as np
import pandas as pd
import glob
import gc
import matplotlib.pyplot as plt
import seaborn as sns
if __name__ == "__main__":
pd.set_option('display.max_columns', 1000)
pd.set_option('display.width', 1000)
pd.set_option('display.max_colwidth', 1000)
ssubm = pd.read_csv(INPUT_PATH "sample_submission.csv")
ssubm_df = ssubm['site_path_timestamp'].apply(lambda x: pd.Series(x.split('_')))
used_buildings = sorted(ssubm_df[0].value_counts().index.tolist())
# 对楼层编码
floor_map = {"B2": -2, "B1": -1, "F1": 0, "F2": 1, "F3": 2, "F4": 3, "F5": 4, "F6": 5, "F7": 6, "F8": 7, "F9": 8,
"1F": 0, "2F": 1, "3F": 2, "4F": 3, "5F": 4, "6F": 5, "7F": 6, "8F": 7, "9F": 8}
# print(ssubm)
# print(ssubm_df)
# print(used_buildings)
bssid = {}
for building in used_buildings:
folders = sorted(glob.glob(os.path.join(INPUT_PATH, 'train/' building '/*')))
wifi = []
for folder in folders:
floor = floor_map[folder.split('/')[-1]]
files = glob.glob(os.path.join(folder, "*.txt"))
for file in files:
with open(file) as f:
txt = f.readlines()
for e, line in enumerate(txt):
tmp = line.strip().split()
if tmp[1] == "TYPE_WIFI":
wifi.append(tmp)
df = pd.DataFrame(wifi)
# 对最近接入点WIFI地址bssid进行统计
value_counts = df[3].value_counts()
# 获取WIFI接入点超过1000个的WIFI接入点列表
top_bassid = value_counts[value_counts > 1000].index.tolist()
print(len(top_bassid))
# 将场地与该场地内的这些WIFI接入点列表进行映射
bssid[building] = top_bassid
print(bssid)
gc.collect()
break
运行结果
代码语言:javascript复制941
/*
* 提示:该行代码过长,系统自动注释不进行高亮。一键复制会移除系统注释
* {'5a0546857ecc773753327266': ['a52823c2ed57e18f81da316e5bcac8bd2754ce96', '61a14256d195624aadd9dfd55c8643505635edd7', 'c93c29d2173b811a18de34940ccc210a3064230e', 'a09ab3d8a7700fec7b83389c06088c91748be41c', '4cff1c8cfec27801ddc9a690ade87c57f1142ee0', 'c59f0226dcdf235d7cfaba662bbdb5d31b4c3f14', '5b225e187d0dec3110683a74d0c9a5a4cb2022f5', 'd84cce12fbfba61bf930123050f61a11e2a29310', 'b2546cae6e588d38618eacc557dd0385812197cf', 'b26914599f6d9ba16b43975394e1eeb9d82f4bab', '68616cd56e6c03f67852c7394ddde68b07d7a3c6', 'c703b0a9624cbb37e30e71f4dcfe9347013fcbde', 'b0b1a58ed86926fdd2a0c584a85834d1cc9d2e0c', 'd6fde84d77e0618496709be2037bc47d952d69ce', 'ca0e0bebf85f1348808b0979b74868e4e675e4d8', '6bc91b3951089c3a225396608b138ca178479924', 'f65804069553e141a96eae17f475584617a5324b', '77d933b398825a1c6a9054bde71d44d2d3cb17f7', '5cfff2a06e481233f2df41ef8adc590a0d779517', '1aebe03ff86398cd62ed5ec0da3650e9041baa31', '288f3c61d2f10cc122ff9cd09c27c5aed544e4e2', 'fb1ebbb8a61b4299bd83248e745335974fdfff59', '0c235b02dd008286ea5053621c7ce50df7f17e10', '86bd6179355aaeb54bcd541040f23808d6656442', '2ad2da7d639746b33d7a6118afad5a2964b58ce5', '9cc80ca7212ff8df8aa509760e6759bcb7015da8', 'c70e999e91f2381a2856197df91987412d6e049e', '32ad7772f626e6d531c1de47806b68af6f33c339', 'b58b9ee349cc63d5c92f6b1c834cdd75cc0392ab', 'e95b2b7db211a0b001ef5ef18ffbd08cbc4f4e09', '9780331db07b369d8a009eb89552004b88334dae', 'd0f0c9fa52edde81962135fcf5e5b11e53ddd252', 'a9535d6a53bc660bdc3f2540251e6289b8c75bfd', '2798955a957d1c8c01f6341133cd847016b2b742', '5a1b76adb81b4e42fe9955ebfa04cc331a0b2927', '02a1be3a5dab38320f879489d8a1e0f2a72768b3', '8065741d577aad26b6f1decd65e64aada3becbc7', '84815f02df37456c258ff6504bba7bda8a46ef52', 'c48db7f3ed1858bb4fc191230e3d79d5eb178604', '10cf16ad6534635699a05f3a6c344526b9d7d549', '93cfc00cb75026eea74e8bb316b3673b53d374a9', '4ec476a535783b1129828738a517f58f8c275ae0', 'f6d3e531f5c08830bcd666c11a2926e24bd47bc1', '2bb807107c76d4339fb55c9da49ecfab1f9120ca', 'd2402d8ef8ed4ba4933a76cce532c8774f589d32', '11fa59b18892d70b03751701eff1707495ccf618', 'cee7bafc23017e9de7cc9f69a04a4e1348d29ace', '963b140eb4a6b676ed10c75f6f0d3b8203958b35', '13b7aeaf441f2161481481fe67eace721cff07ab', '2a8748d9e77634ce29b193eb6d3fed569755841e', '3ec9cf559a195a0d7f65be92f699d42b7b093646', 'd771612396c3e2e557e986fafd9fc2c56a99d3cd', 'cc015d2acede7ad8eb7839f747b43fd6a87e363b', '1d52ac70bfa8eae028e7b0d05ef5ca2bfcf513e9', '903387b11fbfeedf3408343673fd54ffa6efb970', '3f97662166de2a7c0efd3f556c48df9a389bb129', '000840e5c600de293cea57f13326f273c86c3988', '3a25cb6ba0c7bf52d8abf6a5279a659dd03aeea0', '76b8b1ae2dda171dbe5f1923d66f9ccc839ef32d', 'bd9bc0a2092c040bfe6ba12f8aafac24e83b312a', 'da6f98ad244984d9aa9061b7a4c5a23dfcfd9276', 'd3120ebc132280d9a4db66cf58895c8f22a8c90b', '6915ad24a2edf8047f749233e19e9853f5dc17fd', 'd5ef388e09524518ba9dcddc32e638c32c12c1c0', 'f64c13fd10a07bca1bf2b7bd7a80630632ce62c9', '15705627b6d4a0995188c4a97eb3bb604abcc401', '326e159e0dbace167726287290620e11367bb15a', '15d53b7189ffbd7c6010c388a9ccea417d4f28ee', '7969541b4a6e4aedb64983b046fc8bdae157dc97', '0c75aad30012f215ae9377700feb44ee1ce42b88', '1d1d62dcf72481cc9580fed3b724f0d27015aaf1', '39e2a4fb550a6b4a0feb5f0ff7b07754b1e27eaa', 'de53ffe7e3c71c9ed5c845fa50e0521efa5f3685', '6c06bc0eb391695a8df55e3106b829fccd887f10', '8b3c0b4adecdc3281c15a824690f5bdf8563ad82', 'defb1317debff80bbec8fcdb53132edf3988ba93', 'c79035b2f27644be5bd748bff59297f28803fae1', '0e5a262402b8c9d98a3b5a424863f6a6c655ab98', '16dafadc5697e59f75664e1ba248486eaef2a782', '688a2ecf1f543651ec563d2c397b137baf8d39ea', '9ea330be4787b838d931c30f76aa9eb4ab69367e', '6daa34883d9b44405f1db9e78e2a9618340bfe03', '14bc29d59e0046cc7d5ce53054f702da18f37c53', '5ded3c04560f13fd035124da9e887353e2038287', '0c9ac4089f6dcdd7933d6ddc7a3551a67f7549c4', 'c6d8196cc9905774ff0a0dd0956df2206eba14ca', 'a5e1764311f9cefac840d655421dd657cd230c42', '5731a1cd721379cb00ca17b7fcacef1252c003b8', '3ddbf6a9b2084721cd633523afa18ff69d03aed9', '44632b2065e713e44db3479c9cea158b0d7d7b02', '6b14a2044dbc040d8c5a1db2a984bf8312f7e1b0', '91f6bfbc72885ff91266257929f3e701ac8d9d92', 'fc08b98693eaf49070af0be567348e447ec8be9e', '3894fd2dc629a96e16049f951be6b018ff627940', '815627a3e3ef0cf88ae51cd0376df58080f09983', 'bb5eb71d81285e23bcf69f0e7a72af02eb356587', '1f2eb6a4fe21ce42ff5d8184f78bc0e97f6a121f', '69b30a314f33a8bafe26c9543bac3026b6171e18', '6cec3a2eb9d9bba5a48ab33bd040479ffda9d1ce', '50354dce4504e2e95b814a2680e8f35d70ad810f', '679c0df4f6248f3003ce0011779e5cca7903e668', '345c70f0084ce5d54046a6939257931f641edf65', '6316fc52678b869c908390f9bd12345bcf07052e', '7eb1b6f432993717eedf721ae6b24b18ace3a44c', 'd1671e9a665dfac958e3cfa8cf5c40fb4e7c9b4f', 'a85a1a11f0a55266e9d3da10dd44cd020eb6770e', '7fc586091374052f653d79dba9e5b10fdf5871f9', 'e85375d18b255f0b61986993c1c829203d470026', '6d30c48e55ab600a4e8590c4c2a68add35a4c472', '9395f3c51c3efbd27914a5738950d7f9c1de0888', 'ea4208f40a36b18be923fcd5adb59b250d9cef96', 'cd9ee63b982cd8b78437a26d9b2f832d6b642e20', 'd26d3ceadd71540201e65658a307db95295dee25', '8130c3c8e8c3225d872c2a4df99c7518067632eb', '9a26d1e00217c44f9cff5628043c9d77c8e75c90', '2f08d0bea553aef451c65b4de64cd36339fb098f', 'a580dc48670c1fa937880a119044c68e5292686a', '19165c986d0ae8c4b34590617cdbf6568d808930', '3f55f400dfbc4f9bc3528feeb15c7ad39208ccb2', '0e005683e100c08b4b74c76e6392c3dd86490690', 'ef8edb79e602536229e73a67abad10d72382ce19', 'd8862ba8e2b0988b0cd4fc371c7d68f32e391720', '2ab3f38e73b53269d6883b8be80da9d38a86ef9b', '0681eb49559b2047783aa8b5cadc8501954f3b68', '486b1a9d061fe44d5a1c3f28e922baad454e3f02', '3fea4a01d89276bb6aba87c553e06441e4fc9095', '869f76279cbaf6f0520f880bef65cc1c20d36e53', '2de7db775eca5a709a31e77db60fd76e9e46911e', '6b6c054161e0f561d43041fbda8284626c95dd25', '48b7ba19fe5a3fea731fae64658b620005de0823', '291c30876ff92945236fc448dc48fb628c5108c1', 'd9345dbbcdfbe20405a86fa08bf4e39cad0c93cd', '2f69e5977adbebbb76a33cf75ba5dcf793eaf835', 'bdaef0e39a4be1fddc32bf6766b4ec4a4e1df725', '4570a3b13d469da6e23fb35763e1307401b5ff3e', '28732583b77da2d5f2847ff928947d42cdedf7d5', '110ddea0853350606bc1e744fda00bfc8f8c5437', 'f9c28549a90c103c64a6ac83d8e3714b7f3e521a', 'c55c9a0ed49b5fd4be47a865f70945690139cd8e', '78fb204176676997e44ba0e3852b5de735854342', '08f142fccbf96e34e95e8c17442a459f429a3310', '088641ea2e5e631fc12f049655218de9b04b98e5', '5e68e16875fe15e105884521db31b823a28219b9', '63eb11031a958d95443425759ebe5805dcea5e3d', '5e78b3ceece619fc9e8660c2a78f41f0c2beec7f', '16b00a9a9b2a6eba2df366a2404eb0d0f3d112a1', '0874d30f54b9b73fc02e8dc90f6b24c20ddb0132', '4c855e83713c01e6a46a1669db047dca05320474', '17abef1a35c19c0506e685cdb6c61d904c654c61', '6e2e49f898f360b818869ecd5c2d8298d0360763', '5d38a298f926cd7336b2f86a9e1be1ad06fa869d', 'a1f7714ed8ee129ff9196087b971929ff9cdd07d', 'c38d58b8e3250841dbc5f34ae98431e7402add93', 'f06d8a77df90309662c6a62b4c92bf0f624f9580', 'ac373687e24203f13e7bcf2b994316037d05f5a1', '6ee1dc249422a7d7a47987eea4188c5f3fdedb76', '6e102b9ee61aa8028fe0a95e87f3dc386010e0e2', 'fdf37fa13679f581bdfaae3b99e368633e0a144b', 'e11207e4d38391623e8a73461dea4612b6d348c2', '3419af56cd3a9290bcf16c888777961741c8ec28', '63d0d455f48e2be51297f1e695fadde7c49a7025', '19787b1ee33ac886f9784105b5da6548d838195c', 'f0386c68fadad2c008c746e2acfaf6bdb7bc0fd9', '0e2250a84319bd6fb557786aa36b3c329f9b4fd1', '993675a9a48d090babd1a33fbee5f088ef7c73dd', 'dd65bd54b10548c410dedc4839baf4f99ed4e8f8', 'b6d159940a3525d560d1aa0581293960c0766dc2', '8eb7c9848aa1e78b0da3b6f9f4f730885b0cd4f0', '31fb3a7ff1d2cbbb58e8b8e28a3833ed13186c20', 'b9432300de5aa9b5582a1d4603e541819d4991ce', '6729afdb470f55f886bfbab90cbfa0830a2bb75f', 'c5a0dc2fd03e99e26963fcd5918c398577e50669', 'f0eb8e099777a084f99eabefe449833b2bd25876', '2caf39807897e4577f271ec67e5701eb36101b2c', '76be4331334efa1ab2038e98b71458f6168fdaba', 'ce3243f4a093f9959b5b377bcfb465c507bb7940', 'fdc19f011587b75c11a6c30d8ca06d90107b6bde', '60f6d22eb3deec6dab7a568e0e0486c09cdd6a7b', '4074d3eca583baf4fc03a0c0d1d6ae3f6c18f448', 'c138892cffe41574f10daf3e50662b9b87c45b78', '60ba7403a1a1c27c1d28780bbd48980c16cc894d', '3ce53e146c68925e9e5c8871d5f453f35b016c69', 'e0842697e2c12ca915788d2ffb7045422a044125', '524632cb8ad6d175f10c530411e02950474d5cc5', '707a33db19f2064df5f4e9f03dbb439aff81fbea', '230b0585ecc40e716b7327b977d7f1d357558bf7', '680ccefeb88f88e82c6d3b277490a4390d5dbcda', 'a95ab29a85dd9d8dd4b8915af56a184b2da8a66f', '5dfed06a2dc471b7c159ce9176da2ffe187fa478', 'f3e26cef2e2eefbcca02f9ca07bca97d900b0d3d', 'f2eb513d4c87747d0e4bc8c3bbf12951b3819678', '6cd94cc5251afe872b089db662b5da88bd482af5', '2b8287e26eaa418c6bcbf570d4b45ce939b57713', '39648d81b21198da0f317efade93c2e7cff7f45f', '2316d69de2343b00b2ca25e28e2a7b2224bfaf9d', '3f15e2a8a621434970309b3caf94b09778caa8ab', '56ed070a755a17100ff90bd5177dc60320df2ed4', 'abbe647f316b4be25d3d4255254bae3b0e3eef1a', '47d81bd48afba5ab715e3471c7e93a5d5da3d739', '3520a54bb4efb13307fc259eec13fa1b53931949', 'f74f03f0a98f2ab70558421579e38b20744db160', 'fb61c720398cb95914f05f1abe37f51eee51279f', '8ce477a21ccc45347bf45921ed59aede4f21866f', 'ce59894c664b182ff4d1835ded5484abbdd95ff3', 'e7a1ec11c8b1f30a96b138b3ac0af77557a19940', '6cf97f69219bb10641cb698a44d914c27d00b826', 'fa7b75889de09bd19ffc91c2e7e263e264c4737a', '4f186cc01487f44870a0b07a70f6d2205e515763', '3398f458283d8e32c17efd2838afc3815a810848', 'e1352ccfe753212cba20c9abc430fd81a34101da', 'd591d16d8b876cea51f8fe9417dd8cac49e69321', 'f4ce227d1b64d7a4877cb1f3425b664221f6006c', '46ea5bf55e1433fedfc9c87fdcf83c42e6a79094', '37ae76152bff78531ea027d6121d452881f184c2', '56f11dfcffc802e26be318861d54a0cc0e98e307', 'a02030ba2c52e189962667264615a5d397c26138', '957c9a0b84043ae76dbf8847c0afc30024457316', 'a0713125f7ace6d2824f5e509fe35cce089b07b9', '7a5350fe426e87fb255031d43df2472391688644', 'bd4047f64bdaee620cc69bd75c89928c3dfda9e5', 'cf2127077d54af84e6a8d00e39666afa7494567e', '01e25e4a25acd32baf5137b3031151f751fadbb4', 'adba3541c99ad8d47b04ee38e15783f853658bbb', '9f4eba14511679b6b25a13f2aedae4df3a6feee2', 'bf1c60d6a1cf67238b231535b6b9a4f903ecd408', 'b9b5302a4c0a7261036a2d611d92aea3ae4d6a27', 'eb5a1eee1abef853de4844a4ffb945c5f0a55523', '5a96e1418a8278183021eb04f6f8a5f79c2c5914', 'a11475a06476cdb335d6a4f68020a7cb5fd3c732', '7e8ea22e8ebf91a2c2887c78c709971b22e4a8f1', 'e6da08a7a45bef7bcd5c74a4f13243dcf55d4d92', 'b42376db2f3421b282eaa7a344545193b1e41a92', 'e842590129de4642a47110ed7701864f33b18337', '0a670fddca113cc7a87dbadd903190dd6d22c75d', 'c6af4eff151019147f188b80f153ab1f8f8f3533', '99582d0c318672b5ad49259b5edb238340a38c16', '183d60ee138d2bfc731545046c9b6afd81194fa5', '68a30ff9cbd5bc57dcfaa484fa178f24e8a57128', '186716ceefe9b26f5fde1ba4a00e0edbb83f0d04', 'f30f20de559f927e13c611e63bed14b1e22153fe', '80531dc75db42ed60fe5bdfe591d751ffbb35aa2', '39700eec08c8413ec97e05b3e2df689ddd8b34b4', 'c94d4ade874c71673a8cfa83db0bd63cf50d58e0', '5f6868dd5e53b0b7943c7c0e56f1563ac3babeab', 'c236cb5a525430ecff488e4f496408d7cd8aac91', '661ef3ef6c6c03d166a083e05ad508dfb3c20d72', '9b89977c81c4c38bf39e25ec5437a49871cf4c31', '88f3338da2764fa2ad20177ee7a06b04d316171f', '500f56d1499008047d41c74dc7f5b81de763e901', '6a46fe0867e81303bf6c477b739d49bd53096a85', '1ec5e4ca2c856b82dd0b298e8c4382d79de95e21', '881dc237bc6067d8428ad3cb590315d01c80c743', '38ba6e95e652a4a220c0582ac5a97be219a3d997', '2da1116ecbe23411192c3fab31bb6fb812f267fb', 'bbf1e71834f60885aacf4d9f187242f7dd990437', '0482b38bf4daa9243fff612a2594d8206fde8fd5', '1c8e3ea2ec9808edfe25e8c3eb6fb2ee4bfd7c16', '1bc27f89396ed1c36aa496f448551620bb4e1f20', '0af23ecb287b87d4d0528c23181e8242ecba1582', '4223cead342994758116c66f46cd8fdf658ed260', '0981ea46343ddc36e67af51d3832ee20055e31ed', 'c56575efee03d763174dd13f49b37681ec72c769', '087be6452a54ea53874070a1b07f1479f06e1a78', '0d0221202a9b42c2561704448ef04840b18ae8a8', '00f0904087c01d922d6ebf3005607dfdeaf6687b', '36e6b156d1ef43e2e3a385574302b62c6ba890a2', '3d862fe7bc1492cdc4eeecc6c67662f2e1accbe2', '0b5f69e5bbfd1cd46da3b29afd1d674c0925c2ab', 'baab06e9d06dff4033836845b87c069d18353a85', 'be63acc637a1ed99c105d40b89938403352ac27c', '9f0372b93f2831825a4b2ea75cfdebf84d9dfb8e', 'c65f39c3194566c286cd4c29e016add5a6a46675', 'e85bfadc24ead00bb0d80a56a2b24f5baee7da4a', '22831e75f02c45ac378cb5a5a3c22ed275be3bd0', '845ca2b94df27f19e8046fa5312b1e764da39254', '0eafcd2f8e1fbad0cc7b0ee227d18c772d562e6d', '5df57fca60cb48fac97a573ea4f2bd3a85f045f4', '0d65bccbb61c2aaff137673e2e3e401d305a2621', '9000e885278b235609922c0b8ad8a558734214d6', 'c9ac1504c830215a48b196aab899320e83e51374', '13cd1e6a6af504e46baff3e4ebf4084566a55272', '26000adfe17ee51e6647e74a75864e8e4eb6c454', 'cfdaa7d650bc50dd29d033ad6c924e1dce4ecd9e', '9ecf29b71c9cdc5e7c03b47f6511a62f6488928a', '65037b9100197d7ecf053416bf6b9bd91c2df1d0', 'a0ae0ad68d9d901cdf75581093ccf091ea24dcf3', '28bdb91a7dd97f23b9b026d1630ffda67113c32b', 'c1729fc6f537c4e98cb041b1df671de29d808913', 'c181389800b241b9e1fb188a27e1bef90a27d0f0', '83521c7ba9dcefa54b2b43596bcce59e86f59194', '7a22352c28d653936a6a38916ec5692fe128927b', 'fc230ca97bc6bd2969b2194cc896000e972d5542', '62c80c57dc1147cab98d7589b781ed5e5ecc1a37', '8862d0629fd543a489e72c0b4f22b6f9331f42e3', 'f093bfb36cfeedd2a91a349afe66f91cb4898fb1', '974dae9e007c97423b9435e63c676e484860f83d', 'bab348bd479eaabc55fd014e7ebed585b890d569', 'fadd8651e9da3c6eaf9d130ba80c45999e69decf', '3a1ebc492676823fc788feda7793cf7c305fa28f', 'e0c5dd4e9a08f83af8595969137acbc07ab89bc7', '3d7b301dac8ee0890ea302f81f318dba80607e0e', '5c400718b1e3a69dc9065a1a84ffd7cb51366078', 'b769f60d8499d23acab612b72eae2b7b984b09cf', '2890d0aef53b7a7be5e7c44bcec572329cf391c4', '7ca9a0e90174ea8295c9a92203f7a80f772e6ea8', '112de1223847bd845f0f6f2a6ddcfce1d0290f03', '2a8d84b34120d09d9e5ce7f54b4dd576db675edb', '6745a06061e956a0e43d6f545af6bb2dff64f6c4', '5ff84d7218b7adb864c66a82454aff0d0104508a', '1a35d579a7b3676bbaf8cd8b5fdb260f0d43567c', '4076540e52ced66819b700e0a8ea61e76a32d4b6', '5de6df3ad5cd2ff86fc7e711a91a42289a82bb66', '74f42e95a555d87d74ed855d2c0b1fefbe988e0b', '9e1cbe20926f9883262826bc764ff872d80c53ab', 'd9b9edb0c6f0026dcd4a33eebf1aaeeb04231b1d', '9d495d737576575c4143a7b7add3d14a6192c960', '11035847ca0854c99104df042eb0c28912b47855', '46c4e84652f6493051769d1ed240c1583587d2a5', '40412d53fb1140365abe5886418417a12c894b2e', '1f38cc3d16cf43dfdbea382785f717bc3a30dcce', '7e411139596115b015661cd9e6fae4aebdbd184d', 'bc94f67c5bd77ad1778a2d5e0ce4c034e7b9c4ed', 'e420c49f692c1dec36838862d2401bb62a0e56d8', 'b4a89ff56c2127d2f677a8a50df8d0e552dea427', '65ad9ebfe0da11f6cc77e863565ba70b579be115', '25e39f513d9ac2eeb3ff3fe29d82d41ffe9c29f9', '99bb474dc926f36679e8796c5fe3c5d04064575e', 'd9646fe8eaa15e9e8f785c77324fa811e48df081', '6d611d2efaedb6602d0263a88a9a50c9f596fe9f', '043907be508d7eed391e1218cadd52308c4046e1', '4b313188f14772e5fe02b35e58d00fc07b207149', '843620e0e07486017d7d75613802cc3f9030e0d2', '4cba0264dbb07f5315df15eb73ccb62289f2570d', '9c472f9c7acf424f2ca0242d5c2dd4cfc083b8be', '5904143608c6bf21a5f8f5d6e4e842afb8ebfd3d', 'fa236a79405a5a4954301d05e708c6d0fa36d741', '8fc8682a1367fe809941547ab28a9904925ffea7', '3cc8427407f97ced96876755648c548ea61527ac', '365f6991c073ae9d62fbf544d8d1a92ef3cd2dca', 'c99906b2923b6939f0c708d8a96aeb365fda1e26', '09e7a3ace3201397480073d7fde070df500d5804', '1cdf73f6cdd794c3695bc868cf2742fc50d3174f', 'd4f10c2ec705abd54fbea0a01102acf3ade0f71d', 'd92ad878278ef862056c15044c8b62a966627e79', '2a25663447bf006f61d1a84f36a48d8039216b8d', '45c201669ad8fb78fd9dd12288a6a32781c0e4f6', 'e8fcb3126ba7ecaeb730b1175968e9f24d0ebcfa', 'e09dea59a391d576302ef75254953950a1e456f7', '442570aef8ca92862daab102ceb064d1badf958a', 'a45685120e77fd5bd14f808c21de5f0d7b9f59de', 'a2c44a4d38a147f05fb3705e5a163159df161994', '81d42ba66d22db77b862e07e3a84202e58f8c29b', '983ad8a99a1a140aa1cdcedf8bd08b3fae1ba64a', '41311fb3076dbebb93a96b726e616286447041d1', '997f40e8ba5264c2213aca456f4632a32871dd5f', 'b80beae478db02c0f4d67230da706f6d141c0407', '3fc85c6ed457ddae1069baed856526b64eafa406', '24fed59e87b0abdfca829b467acfd33c5b99099b', '53dd521cc8b171d4f1e8aa1f6afde4b7a3973503', '463ec9948b44589dfe1c3f3d1ad8d923cbcbb4ef', '6694cc6680892994207959c12f84f39ea32e3c6f', '196e40ec0be68e7d1ff340509f8072ba3a470df2', 'f1e0ab0bc52bb1cfe62442b8ef9971336c1eab5c', 'f962c52f40b06bee79d1f37a996fdd7cc5b81e1d', '51d827709d0dbc51267601d4534d78c68f2cdb7c', 'f8192e82fcb81f5095886517ea7155c0b78f6e38', '352a78252df63901e641ed2e89f2b5c4f933a4f0', '17e52cc2d8f8d4e8413bbe1f0a4aae1731b84aaa', 'd1681bd6ca44bbb37e88409bc1f7f32be5259495', 'aed583c551ceeda1556ed079664c4d1ef33858e0', '1aa43824bb504e2fcde734eb18421f4890cd2894', '7805f319f3f591986effe78c5b41143180278f2d', '0b3ef761fe9c3069e744c6d2c2dfcba9d9b1f9b4', '6a2be1d97e71204bc94947d6f290077f59de9013', 'bdcef16974e095e2dc0917453a8b2ee070817c05', '85e6e3acc4f0005b00f70931e3f268bdf650956c', '76641a801004400b25026d8ae845950cfe8868db', '301de390fc0833d74c50b87356b5b90761663b4f', '575d099c9ae606cbdad5045613530ff24e28bbad', '105d017be5036876409c1f48c31f7f5684e61906', 'fcbdccdf5f7afc88a18b7d824c952d7e1335612f', 'f0618f7ff7aa176c0962b67dc6c31e20324b227c', 'd5c44ad1d7259710a6a0a84610f321804605b81c', 'eb6778872fda716b31c1316e3e4f099c22ea822d', '18d48d7996830945f6257f2daaecf918fde87dc2', '8e6ff1f522258bb1726cd716edb4b988b4169497', 'db62fcdb99bb797d06771103f8536ff903de438e', '6a27c310e644b60506a69c0d21c909da4cf4a755', '80e0e21ba06136f3b168295fea79ede3a7b43f12', '8e421ac31d0c34bc87a0bc61b66e0eae44d0fd4d', 'd011cc51b6bad11e6e1a88c399020b191ffd8790', '309450b66473f06aac98a8fe2dd34a64664a6d5c', 'e43054fb17913b298a6ebd7990531bf0116d4f3a', '2f9367172f3410fb9f4f9e93ea8f3b8ce9a76b74', '3f8cec303c3ebf4873cda5e9da225773d264d2e0', '4f1e1ecd5f7c4de40a70f00b7724ec6c8dbd85c5', 'c63e847e346adbb24aa01d86f2272b518b20eb9c', 'aaf683c5dedb818429a6c748e33572cd9919ba1c', 'db2bd83bfe58ca4b01fcb1acfdd7c8d1d118b44c', 'bc2a3df3d4c2d4ba07255315f36b20784b3ae2de', '675694e28dac34adbb1f7d058cc8546c2e6313f8', '4dfd44ed83a3e7b78504429fa61217be94a04f2e', 'b7d04633bbe34af099d9128da576c0d488ebaa2a', 'd76749489c7cae30672beebca0dec8d2e3610055', 'f60f548cd3ba0a5b7657a31091690524a7171be3', '3a56df821ba1b5534e57f8aae6e0471d1c210680', '7acd3fcb74a8194f779b898d07bb4766e1d30d7e', '113b2ccf3a21d62269e24c8a0b2907871ac0548e', '0a32c7b628a7a216a79e552b9162822f0b66c348', 'e820eeee2a2be84fd84e9ef09e6f7f3e1e9da5c1', 'dd19174c48e18d7ef8275721c4eca8d8bdff5008', 'd347ebf6f2a3c0e514c762007c2565ce50b1052f', '608ff90f2f98f684291177c70b1f3efbaa097983', '15d4a31cd3d067065469f1e9e969cbcf02d0a479', '716fe087c77b73281c5823166f9d6b0fa830ee7b', '04b820b511e2ad7b23e75c34413a1de404d4ccfc', 'ae0e1d60ac2c1ffee8e56e3ce69403bf918ea895', '1a3783ca71d48e6683d3053004bfaee323cb3415', 'dfc2a0c43f11b9d427cb3c26f5c0f39441fa1ae7', '998706ff97e9fb6d19b8c60f4f6aac1c82c6d19d', '3e773353957a7a0e2485090d41de1fa5a65df532', 'cc4f469cb7d85e912c634cabdca058d5edd0237d', '82d3e82e724c419efb1e4e9eeaba32f3d4dd1376', '872f92e5bdf2d3ffd946c44133793f5b43552400', '95b022911ccdd19e37e89043292adb1b222b5c43', '954aac3562feb83f061e72d80a6757dd9fd0814a', '5906a627d57e50f2ff28b834a6b093dd52c541e5', '2faede17af914f8a1ed3f8eb79dc56f872882f08', '62faafdc7a2497fe712c04ae942c0e4aeb0ac0d8', '6348dc6f36e47858ed067cbd55e67bf5df721058', '8bac8930d7aa6b3454d1847de9de0b19b22edce8', '8bb2bb43f7ca5db5e821edd61514d1a42a103039', '7a557aa99e2d7cb8d4f7fef047374faa5de3710e', 'ccecede95c4a486a4a59b0bd1fcf463a3245b4e0', '296ea9e41acd823ca04a211edefa7cc6457728a4', '7138cc44edd6b551955b268a5b86cc76f3a6d205', '3d12ed187284f7bc5c53f6e7965e918068e52b1a', '7693ab76d893d96033164fb31c10dfa2675c5ac8', '34a47d8f6a0129d83744466d5e644fa8af3b8ecc', '093daa800aa8dd3a4543b51cdac53ae71fac9dcf', '722db5fcfac4d60eb2f49b6096cdfd990c74f52a', 'b1cb0ddc4c9279c19366ae24f9c059eb54e3fe31', '9a31ec22245abf9c0088ebeb67e0d1a534d7b6f9', '8329197d05d0b73705bb00d86f21b829f7219bee', '9d2436a7b8cacab6f5be1f2a6a1cd09f1c833ba9', '107b4cda60752a916e9719ed0bbb177951144855', 'c281bb61343bcd987445e3a7ccf53ad7af6f5c25', '43cfddbf2f289ef696f5d11aad0351755c39a1d9', '41d8e047515fbd300b8dba046f0352cdc277f268', 'dd277f9244ac8205eb2035fab99417d483e452c2', '613199d43a7c42ae1bbae985a431e13fb9edce23', 'c90fa8e289f6d3c4772b4e9d5bafb3034ab119db', '93d784be10f3599156e75ca6af5e5852f4af0ea0', '8603dca5ec5f3485d28b66fd818ee3540301bc79', '97a74323718ef2ebcdcff37966c7eb060f82fc36', 'c06e91e200bba426fb905eaa4d5efa43495d39e6', 'f6bfa422f42d23306464340afa1215a74eae8f6d', 'b4dbb0b30caa1d0f21b7b4185ba061556cada67a', '53c8ee4789dba74be0badebc3acf8fcea6c9c09b', 'c2fb01351b51091f68c750548c6e95acc9620552', '6e71e61fda2ee90d02c6ca49ed157025a350aea5', '8cca161805b3c5a062778e8b34df3caa5e652185', 'c31d7c489dc0a491882fe0b85b39b5c45049328d', 'fdc189e5a19850397f37201f4acc378cfddcf0d6', '8fc106e49986a0fd290fd3793254b975d9872050', '0a741c9b887c6f7793cc6a3d4c8fa221de5988ca', '13ab407e5ea93d8d63431f9b41fc644b7c739eda', 'd2579894743417664d10fc78f35267eb449da576', 'c729e2e4f5a2888583cfebcd98b3178023f58b8e', '7476ce0f5573ab0ac2ed31989508c683ff6e42a7', '64a752d5b7077f0a5b3b810cc8f3a7184917567c', '0c4130e1e769677a016612b48d96480a8cdd1dc4', '164d78c002a490c56bb036db273c707e311dedc5', 'e63ae21331776a09dae9e2c0d89121b9158d6ef3', 'a1a77f543bd73cc2a3d53fece451692cbbd665e0', 'a1caf95d8eb63fe124c9238c215c6f1a9d7c506d', 'f682f580924ab4b3f3da7a222c7a5cb7ff707404', 'b18c91615015ada1f4b45975f9b70b5a0d099bf8', 'd4f5c7efdda698a858bb91fcd89f6c882872fa47', '7d09ecf5bd84e8b7a401a5780bf22d00678b695d', '4be384ea949b30337e12c9c51d08be8550e04921', '00af060fc145ee6a6a50475efa57b91cbf54237f', '83c76a690c971168f492a7a6fe4bc7e406a37936', 'b714027cc5853aad33e8100f259a373a26865bd3', '84fe52504769b4ee72e0796b73daaa31c36cc8ee', '499cdcbaf798d669e117c2e3758641fc2e55ac3f', '13658398bbef2ab3a4d9eefcbd92fa5c6ca83152', '935469d9e593dce5c91df7dc259eb678e84df4a5', 'b2006c3a4e3e041451e62ee6ab344ac3aeaa800f', '345c676b57db4d5d25e833ee53b65ec636cfb32d', '18d348ee298c84676cf2b834ce063218e74a39ed', '87f46fabed4bd757563312b411ad6588cf3052ea', '27b1d42a208a2eccdb70f128f0a75c72d6584786', '5489832ea07a2b6c488e0b857b18ca2bd5c79186', '52572c394df497d9c3700e7dd96ec9f9b783939a', '41c8cd40a6eed5e4f7f279eccbc71c5a6fb32952', '785c32c1acefb7833934ab56a1b830ff8bc39a29', 'e45eaf9f986d8b950f244b5c0183ca30e9a478b8', '1b66000d0d96cc0a1edeab4593a1e1e217c162b5', 'fdfe926caf5f49a88a9bcab8d025e887f422128b', '356ee7cf9a66cac4632bdbf6f7bfe5dc17a4a3b6', 'ae65325732fba6233c6faf9214539fe493ce3210', '026c2f057932da75680b21ecdbd23bf9cb9350f3', 'b2757f4acb9bb20f782ec2d59ccad4405abb4a41', '90ca196caf0a007f6af40e167bf05139a6882e61', '7308d1f821b1eff96ff0ac5511fd308afd21f8ba', 'a6e2eb6f1e138c7da99b2f2b8b90ceee71f19590', '632c4bf5081efc020d134d2e5374ce960a0475f5', '4936f4b5f66fbfa3d2264ada20e8ea1ba06fbfbc', 'f27b6603820d90e9b0ee05949273d6059e6b5170', '5cd740d96069c2beb55aeffffd70ea7337f100f5', '1aa7a26d2a229500d44fe3fdca4bdccf61c518e4', '9f42c84af7acbe3b668532b1837a4ea3635b700f', '15b5928c3944942e322366d6548d690de9a6380f', 'cfafc829d4311727bc96e142aad077b7f7d2ca53', '33d063cdec3f81b5df082abd0c9fbb382ebb29b7', '82394dbb9ee21cfe2f4e015c2cc9d5c60938bb87', 'de1f940ef441edffc5961ef95ea9e8507667ef6b', '74bd346fbe741f068f3116d3c0398c4abda35dc9', '259810e7a8b5203d5a6ee014be24726be53cd1da', 'e9b24f94c0007acb4b7169b945622efcd332cf6f', '1977049d6c8b84c76d71864fd05c5f25d61abea8', 'c9e9576ae2e60f08b7d6fa324e87c206aabe48b3', 'cc351605a6271189d565f48b2f78a3f024fa779b', '246222328f56331300113e7da7eac1ae805040d7', 'ce5937c4e23fbc44493a9329ff637851e0cbb1b9', '9271d7134a4b8a338a01f6b2b6e3568d8dd1d02f', 'e094e2190d1aea639e1eef527c331eb7deac00d1', '1477e2804baeafbd9bee7bb329bd44359af70b35', 'a8145d2afbe65683bffae951ad21b1a508bad887', '8983c021c95aeecab9a6d28da99ecd18ca5cd3d1', '55834d7f27b32a77b52e5dfea1b4ff3c3389e1f9', 'fc77794b1f306779e6d47c93b26bca7b229a6da9', 'fd1a502adb446e835797a88fad8e79d1e0bf4b4a', '5aba6eb8bdc82602c12481729b288bfeab6b5546', 'e5bf16ee2fedcd7602e3611d8a471fe638e7c5de', 'c996ca27909de1c8a008007adb8d43d261f282ba', '32bbd941505866b701812d1a5396315fc1af7f81', 'f79914f6e6857983f2ff1aae5726102534ba9000', '4c18a347b96914e2e41274b90691c55c41214790', '8caa968ca60137149c861dbc10aaa4e70911a3b0', '2c19f866a7729991666ae5f72f20d60ff9805bbd', '0acd5446bf9e351dc039c99e653c4e398171a9b2', '8c1cc741628b97bff8c00412778ae1b461d613c6', 'a3f167647e4406d59ebf92e99172ae25d3a27240', '8c951612f3b28a7a6379de232d74e54d8411cb11', '0746024a3e1bc32db07864be99f31da059a871cf', '06aed0ed92794f30f58f2991e09e62bc01434362', '93b9f91a23332372acfb78d78f0fce1d6696033b', 'ef018fe92940aff5b1024ea2d5d217586b8b0657', '0a82da00c486894c4b08810661bd2a835898448f', 'a41aff775c3816e2edeca892bca1f60dfcc53e1f', 'ed954270466a55931158bcd87e4a7e667a2afbfd', '188f28ea467a7d319d12792188520349f94b459b', 'eb138e98644258494f8709d807c4c1ee2998eef4', '36dd34379e52abef16b6f0607b2a36a07db6e862', '2e88627bafac16a05c44723624ac89e19ace9f9a', '780693bee0db78c4c5e5a9cdab56d6619140c69c', 'e6d6f20d438117125ab2710caf24bbb40b45048b', '2f060c2a295077ea60b6e9a27c04d82bcad99bda', '71177bb213b665eab29c7f0c13810fb43e981127', 'a8802b19309463eced4835bdee19dde9326b4fb1', '57e252d0e2004b53312413c9c9283fa1927cffef', '1fd4e31d82de1a11ddeb8016b9a8d0d888ab7680', 'f7086e32e70d1bd474debe5553053dbb7a0c09b9', '8a92863c27ea14d4435762bc1fc700e743845ea2', '36c724fbf6ad6ec9bc344eb294d7ccaab6a0ac89', '4869fc196d482be16a5f1867b3036d18c0a6436c', '8329789acdab218996262d0bb85d25451cf6a17c', '34fa25445fb58e85e6e49df4c1d84b83bf94a310', 'a0e0c026f2a73de7df30848deab757dadf7539d1', '46dddb684b47bb978fdec005f38cd49c987e8b91', 'caf4c37d898a8544b0d98edb202507d8097f2e33', 'd83fb86e76fb23d7de54d1ce215b1690e34f3aae', 'bad2fcc7737d8e2c26bb53f6e143f465484d3920', 'e8af39b7dfe78bd5413b4af4a667d052e8cbaa77', '285cdac12c1f62863c42e4698394ad5182f55687', 'f1bd91a2f6751faf2e12d4148bda5a419188fb90', '94681cc13d15a92bbf07ad90e90049569994982e', '0489782c0949a75a43da32cf6defd66e9ffd4f59', '93dcf9f3ffa932065ec1e7391cfd87afd1ad1374', '8e913a6c5302ecae9dcd6076843a4c04218d53cd', '6350f07552fda4c9c10ef19e1087da458645da8a', 'd45ca29a7a3bf7ad81d3b94566a8c79463112fbc', '57290977ad70b322595e54de3623f48db7e2dc2b', 'c048bff2a8b698e9357b50885365c417bf670213', 'd14eb72711398d2b2337eccc4f3790fa7f534f5f', 'ee38886d0f4958ba0dd7197b072d2182c5259a87', '72d79e029accf1776a91a955e9f7b2e01b95565e', '6953ea15c2f2d947e1affb04b64aaf9b38856d28', 'f41aaeaf44808e7a7665a27f68df03db8ac77708', '054639db76db4b40ae6ae4dcc615a661b3c1f532', '3bb746eaa26010fcc06521266049c328e8e2ebff', '0697d08b2741a320bcdcbb9624caca0e3a415356', '6caa1eff718640a4d35f444481ac01fd5827aa16', 'd060216023d1f200ab0e567db9080d0512012dab', '6e620e961256a77f983b0801e4eea93a0b22713e', 'bd8142625065f4677e0c23d3bc5cc9a5ae37c5af', '3eb34667700b5851a02680c0d0d10249ee697032', '267eaf73afe0e64fd2f330535e9958fdc893a93f', '39341f741354e67b5550a733276aa0ec48749640', '68690a13a8d7164205c5ccb902393eb6392428fb', 'd934bca40d7812c56c53965c4083d676e6bb8276', '39d5d9e3c67115b98e89f19d25c908c99d627b21', '169479ef75a2db149091129bc2e009b0c3f26f9f', '5c2779b69279b29ca08c65f04aa57c66d2244ba0', '288862256f960e03d44ab2f7d1eb2fb2db9f2eae', '67d2b03be1fd343064db3c2895fedde9d8f74839', 'b73302fbe890fd365898f2fbc3aacba986fbea4b', 'a19dac7dbdfd5b1628917159bb0333d0b4248b01', 'ed996cbd1eb9d4b63427f2a395b3afee91f682a4', 'db9c05bd401e8034b37239c5d019ba4d101e8904', '78ee95ef130eda7e8272684ca440e09d6839dca5', 'dcbfb2771db32722e0a6b037dba1a41974fb17f2', '56c9b3f12ea50cc029bd7d503a77a670341d1d43', 'd22be9e9af16662ec23e88146fd1ff658a5a7dcc', 'eaf9174e872315c3630f8cfbf81d08cf582da8d4', '11b29720f56e05203439593fc1d09d068c370362', 'd026e6f8d2120aef5f49f71032d0842c65f21084', '11ee5a7bcc33630821f55783947909ad6f64a3c0', 'eaf4bbde9fea8eaeda6ff9f0af06afd79f0adc01', 'dd0fc566fba09b1c787e21fac957a9132e70a0b1', '5675bd356d70194b25d58778e4bda725455c8bf8', '10bae54946b5b77e8dd6b95fe42eeca3fdb5e0cf', '5abe9b0c9f421b4c1581a9e801b1786c0a20e272', '50b11caaaabb8934d19e99b0dc6cadb4ea516eaa', 'b896a2a793aa802db868a7a0fdb29204bde99065', 'd7e9b02e68a4625a7ace5decdcaf4013a40eb1dd', 'ea950fdfe174caa330ad082bc5099fda7bc8a236', '40a9263b2f4e0ed0476fd5f52428e573427a54a7', '60486781563e45fd73ac9038bf87249e1ee1e106', 'cb7c0d32ada93bf41f44aa2b37a5c584e894e040', 'a9349ee0d1a1056265aa478e1b8162f0e9823921', '1a11be1c59c0057a3468722ca654f596fc846f7f', 'dbd15d19abe3f9062b14bc403a499a66aa46cf26', '2aaf2ffd96ed70b9b9061cee68fe2df8150db3e3', '955c269857431ffe26a78dcf54267eb1908d7b29', 'cbcbcb7063c7be4fa4230a7ea032cd8964ec5ebe', 'c89453b4f0bde9488ef373a40d8821f4bf81beae', '045ef6205f933119d7e186aa4e55fd6737cffe48', 'afb145cf150c6345686e30b2565e282c0f7c696f', 'cad4a88efef2989c5b08969bdf826f055c33b1b4', '92a2f4eec56163703abf7fa0aaf61937facdd3f6', 'c827eea7ca136decc74de46f6d98a9d0315ccb45', 'd6d9a9d1631310c04ef2c04e0f68430b405526a4', '5fb57c47b20944c48078ab510e7c8eb8055d24a7', 'aeb320aaf4227a9c2aebbfdee9dfd7bd5c083848', '70e4c3bf5952930bc1f3bb7fc32d51b4328b74b2', 'cbab1d8c6eb34917dc210c44430e58c283013de8', '6fb2dc223caa9605b42d79bda27a6743ebc82065', 'e829f87e488259792196ca04baa24dd26e5ba8bc', '32e4d3e636293aef4f3cc572d0c4e0532e907bde', 'ae08fe80b63f1befd67db9a7880f4c76b34300c9', '73edd09835f1a135f53fed3d140abc2d99280399', '961ae5c1f60b834a2fb2712c306c7e40276a2e91', '33cff93335660f2487602723d80ea611a7b2e2f9', 'cbfa7d5cffed462ce7ff1e5ceda1d5536b315031', 'cfd3fcdc2c11ac731d0a29e765e82bf2f3181283', 'b86b2253d96800af0e77766412d677265b8467a9', 'b4380bc57e44971c65e21229bcad27c580e71d79', 'bab518dcd363ffabaa102e752d4bf954f8215f72', '68d3a0a05bc8c9f39467f25247e4982a711fc63e', '568ec799c7fba15a6b161b08eed9de98fb3f8f50', '87888db3253c59408a155e98d5a4bc0e3dc4535a', 'b2c5eb922b7654f2b255b32ffdb96c7538567558', '2e5db380194ac208177bdbdc28e5b2c84b48be14', '3c3f92975f731b7b7244d5dfc280076b446510f0', '2894412c71123e5b9b424d954dc07389af7c999e', 'b55e68c29f639c2e9fbe951f32585e0ac8048a45', 'df9f77aab0ec4c21ecb2cd5c3067cf7581cab4d6', '353b26721e24546d44979be16afe68fe8e469594', '3023d848231c23be1508a3d179fcfc8e1bd88308', '9944ce7ab46e9ad522a9aaf2327fd795ae42c006', 'f3512ab824a4f1a7399c5c04cc0142f0ec0b9df2', 'b21bd80e857f993f0385fef27d7636533af87db0', '06e02065793833706e3045b5c5a0b7c645ec76b2', 'd53898dec304a9c9acccc0179f0541254994b9fe', '1f6187b5a484f10cf8ee49b0483e1aefe6b2ada8', '30ff46262a48e2a6161019d64d790cf19e19dd53', 'db2bf922c080968f358472fc60a4eaccafc215da', 'b550acc32dcc2b1726425312c5bfe19805047b39', '2cd9127d8307f1ffdc25327f0d14c38eb93753e8', '9846e4e9714b57491be0326297102a938b1b65d3', 'bb92225a7f19430eac540651807e1bee4424a233', 'cd6f31d2f563bd985c004e2967c0a8728664befa', '90be7817304c9774d9d8502b68c3fe5d606619e9', '0a23758a5622e59426bd94da6702cf3262acb80d', 'c1023eac917a0a67930add5bf24fbfc7bb9eb5f2', 'c90cd4db681cc113a5a4ccb983e36ce767e7c8f3', 'fc3d2bcb5b4c430d360981e81d5dd3afb486887c', '5a1432d626e13770f303225e32a27f3287f405dc', 'b54e5e8cf4157d89de6d7ac03bfb555819a14f23', '6d236c2591283a3c040341b01c424267d98e77eb', 'b1c2f3f7edeaca4fb5cab105a7e75fe3dab8e532', '29fbb6e4c43ceca86657bd242fd67eb5b97b97ba', '6b614b4d6a79dc2d12958881c41a28c11e955e0f', '24b3f5cc0a5fe1beb238b1ced0e722bcdc8faa88', '8ac1353113662ef60ea50ecc34f110fa922963a0', '5c547ee7bec2229ebdf91fa4c1fb93644f30652e', '64ab291428bc630f95d122e2224100db83d21bc9', '8464ea586ee5479e1250f938d7c01e9bc68cefe8', '5c6073f84f826777aeb0d458fab8af0ee0601f93', '1716f6964059dcf719b04fdf90f527b33936b644', '6aeeef455689e43f811721d692c0f76f43fdda7f', 'cbc6658be86ed0a5f49e670dcdb61924eee2ba0a', 'b669f5001e1c185d1fce08d43d77fe40eded8b18', 'b369a53308605593bfdb343e867ba8e6655f1fe2', 'b9a16757b1ee48f2de3198b259d6236e28af6d62', '342d1bda7b93a729f475b53ca92f32afe403fe83', '2c2969a226f4951211e7a68f5d0d04591edfff92', '3ef9e807414a069dd4dcd23b1c5aef9529efd5f6', '0d22d098d33a2b3ba059f1d9809e45661ef24739', 'b218c32d0db89838040a81d6e33219477341f6c7', 'd0448902209137942c85ee5c34fdc9e77b90fa3c', 'f1f56ac7fe18e856e95df678e91356532369bd92', 'df6e6948474071301e5af126ccf82436227de48c', 'f896736dc2581cbbedfc486c6b1a7e98d9bdde7f', '8d62c359632fdd988c4eedc2392fa2fec0dc2f22', '5b19322b33f8551bd17f4cca5dd1c164ab7ca59f', '1e10f0386854e58a5d81c13c76409217721d494f', 'efd6b1c9868a0311dc3ea91421c735baf013acd2', '028a310e23177c3747d37971678dd964ee28ce17', '00bcc61bdea4d52d050822d66952dd707c2fcdf3', '86fbc9d659081f7496d25057e5b42c67dcd2e7bd', 'd40668b21ab42db06c14ef871db9916ff9536eb5', 'a3b99fa358735107a850939f2ca6efc54b861100', '19b7053e57f4bf183d1e4addca8ef9c155598ac5', 'a170873904e368c75b2bb45fa6c99dce2d81136c', '0ae129da9fb6e90b624d53a7e34a3edbb0a7244b', '8c584d606c197d5c6d2bf059b0db388b1aa2f882', '4779c423af989d257c7945d1263bfe9e00503946', 'e2b3696ea54ea6aa3ea1e5fe204baceddf681888', '871e0262a3611b2fa73b762068119bf94ee3bc97', 'fc220d338e3959a9f25a2dbeae7b69d6fed647b3', 'e6586e8c7ff3f3888c39cf0c73460df54dc0d951', 'cd8810491c2d5531e425ee686e61d3060bf13ed9', '00ad587dcb9c7ce3788b92e22777a22ee0efea31', '60314ab282cdcb7b9b6eafba1a2410b54e192572', '5ff5473f488316b5854e6e95af280ef1db505052', '899954c287cb41ab8f1fd69b6c7e2bdee6c1ca59', '9874b715c22c380173e843483cb61f1628317f2f', '8feb4eb0197ac7900953c000677dbc88cc7ef85d', '60176450b094ffca7d3acb2414acf82581d5813f', 'e28b88af1d39d48658860e9a82f45597643fcbf4', 'db82f437c50c454e665546477893ca944e4fdedf', 'dbcb76538295fe7d231aa80ad0f677ffe0cb46c2', '6f797cac85ad20eccf7c04c065bed40014cf296b', '3ac3aff784fd9cefbc9bfd63e1574fe8ced37b68', '569b9dc11ec4070e279449a1673bc13c34ea38c3', '069d1a6cd62e727b197abd1c5efb2f678157150a', 'a4e52e503b6edc041739f3e68addff5bdf047b6b', 'd046fcde63af95aa4a4b4b09e871eeb3228c3560', '365544221bea97f50150a27a96fe47f5aec30c06', 'fd179c5e4fd5e33493ae290adbbda2950ecf0427', '7b819a0594451b33ba9db79f4253533ae0566ae9', '8871a212fde81a8b7b0b93bd7a6f75c2534b310b', '3c6695768483eb6b30d3e6f40f1bfde02e740e62', 'a68ce588ca3280f448ac4c0ec3f7695bdf7a99e9', 'dc97deb45434baf99895a794192c210a22bf35df', '1b51d55a893a54033a8bc88278c2d0ad7ee87b35', '1d14b137ab03637ad1bb542d4acd1c515c2fc195', '8b4b95e5b6842b2d34128e942c2fc3ca551f2386', 'd35c7a50e9f33f6a920b4a4140e5b37132ce3dc1', '7cf4cbc4dc9d809ffadae403bfb2232841907ef5', 'e89feb765372e0707043c6298ec8bdf70d04ed87', '73ac5c0e176fd5f4cf78ba3c62905c87134d9c7e', '8ee3c33d99fdc8b15e0d106bf707e43e2d0866a9', '4281cba285ae36bdec81f9d32088929a9eca619e', '639c4006a6b837f762033fee794a03b7c101645f', 'b2f52ccdef3b56c8695baf0ddda300938eab81ad', 'e16fac100910e989377afb090ec954958c6520f8', '9adda3499866380c28f87519c8d9acc3c6033809', '323607d8444900d64151ee06d164738ac727bbce', '34d480125c656175a1464e110e26597c520ce0a3', '7a95cc097f0cc3b73e6294b66191617ed27513e9', '3c818275348ed44996f3c1d4adecf26bde7eaf36', 'f912a7dfa6d1797d774fff0b9f4e4f5cbed4a981', '381e5b7bc9493f99d8c1d823ec49dcae540d91e0', '7ff6898b2910ead1eedb62960dd3f02dfabf669d', 'aa06bb847e57b590229d854f60e7965881c39bc9', '41515f6ea505b50a591da37a53be8e0c448e1ee5', '4e9e62dc67a0ab626e381b4b597c85036474686f', 'c70a6973225a173d7a0f74ca0ff93d07d140ed9d', 'ba1ee5b98773ff9e8c16fec1ded93b5295a5f487', '398b6d36d804b02dbf68e8fad39659af9ad16aef', 'f2e910cbcef80943c7283e39adca7b974055e82c', '1d067d90fd180e2de69d53c8f42bf26176fcd0f8', '0e5814f651b6a398edeaaa76c4a6d3d2920be890', 'ca64296b4333e4ad6d31a9b5b18891e60248a5a5', '0a92e69e85c964ee03c2d7f290b977d05a2b3444', 'ed912805f0a8c14f9d344941eb895bb718bf5d4b', '73417e9243abd5402d33a83243c7b97042c17663', '5ff6e3f676160afdabff591bdf582b01028749eb', 'f8a80be7fc2a0a4aaa438b6366abfada7b566cd6', '2f3c7bdb7cef7dbee88bd04571b0ed64dcf5f5c7', 'ebf9ded75b34b20ce698b5dff3e65582eea1a659', 'b831c303c1abd40fd8b242f902b6d900bca585af', '58f01d7d71a5b84f6be28fa2e0923b3444637280', '01d2f676abab6ec03ec5dc696bfd49d66e392ea1', '16f784df42e07d8bb8cf954e768166f988b6ca80', 'c019d44e14694078f097933f3766c5d997a07d43', 'bb5bd44c66d7c376dd4a350bcf598af29af74fdc', '584f44ed88f51e7ecf3c550df2301db3166a5aa1', '2bfa91c7f173dbc6d1acadb5ba6bd03dcbc9af39', 'b374df87a70770cdb53534a2ac210d2221649780', '56f1eb9a1835641b240079081312a288dd1c902c', 'a830915240b76b1da7286b938f5178b244d29b29', 'b6901adad3af22019bf4a7b862a585275cf247f3', '8d8caa754528e2b2eee8bf2b6362bc950968c959', 'aa7d495e7f62658fe8be9ebe0cfec9e26bf4c07e', 'c9f41cb33bf95e1f44c59ccc41011eaeb2dadfca', '18043de4122a4b6599cc0750ca0427b2a5d7f49e', '149c09a117b9851201c75f97b4a7cc94b75fdcb4', 'cb30eb64ca02035697d8187c8ead05ce4d8d772b', '93ee7fb4a8b245a824cacb7de7665c606edb08f5', '60210e8c383d286113182241bdf78acb3697b294', 'f06f238633347196b8fe23eb225bad350cf43322', '524adb9add1079ddd0428c596143e33977e4e36d', 'c2f60ab72a28ad3da155a5c7c591aae9d5e00061', '6a11813dce1e80e15cb78efd8d70fd515cd54a71', '1290ce7d7e17eed000ac5928f4f32f681c660d12', '51368a6e7478780aef119e0931f4933d779d73c8', '7ffa5b99ee9c58b098c425b5ab314536b63af212', 'f4668f6fc8626fd484b7e08101fff4226606c73b', 'f5989b9cbcf767a6ed0a81b898d56711af71b43a', 'd363ebdcc60c21f4a1ba386399be4ecac077b4ab', '9ce8bcbc19e89aed9bed2e58f51579f2dbdbf835', '54c9fb0d4b835217cfa0b9f7e8164dd162bb7b43', 'bda24ccbf03b623c166f47381ff8dc1f015becfb', '95410888a49789e997c8956c44405129a489438a', 'a706447dc85c9d39c5894c652fe728a48b945118', 'd81bdded0c98594fe74b3aca8038766fc765e8b1', '74c4e087344750594d9118bfb6f5320c138b4fd2', '12b84c152a88b83c6ebbfa5a427101d14a3ed941', '050bf0c3db9a1017be0fc746de7b5c1a68a918a7', '8a771a59db10ce9d4de4a8ad836d23896738e02d', 'cbb49b7e29b7be130de2d517b006e7cdc8fd9244', '46e733fa58deea74d962874847a529fb4897e655', '92f388b46b7e8a0470190423905c4a77ecee483b', 'fe3211f90e4ab1f500e10fe175ae6142f4b13130', 'fc1782881eb28f50538fabd8215708d30e73d2e6', '9ca64b8506ab226aa7382a2a14256de770c4ec7b', 'fdb1ad87bd6fb08014267f2586faeed0edc7412b', '2d31218895f6e15cd3c80d5c298103155ed4256c', '04af33baa87957b484fdf8d5f17a64f972af7f2b', 'ffa41c79865d7fb336f586e0dec8b080db1027fb', '376acb5fa9a351344c60d3eddef8a6e75ef8943f', 'e95694a0427c449c60cc5a66d0b83e3a2c7616b1', 'd5bf50dcc4349981556dd7a70b38699df5d78149', '7ff6dc072ab78c4ece184ec846d1f43f45c5c6c6', 'a93282167f20443c8aefd8ba1ec5acabef6a9745', '170666b28105d4de067ac45a212d15d95969c46d', 'ca86c5b074c5768e481e069b751bf22c6d95bd48', 'af03d645e2ce58455848037f78dc79d962ec95d2', '44d12358a989274930feef5ac3e21ef3c81269c5', '097599fa8b0d2bb4426ba0dae5ca9e578cdb8149', 'e7e37f64d13e4485149cb9174d834a88a98e6f1c', '5a8c96dd8519e257c0c13af51cdf72e89bfc7339', 'd3d056da278ff2975a96a486e4c1f70128570110', '1e03d9b22fdd3e0a9141525c2772fe1c82327124', 'bd89d9721a633cd8200d516de07b6a1b597dd898', '28fc1642ddec4455c4fa2f18a04b0b15f1c27bfb', '1b8286ce49240e893317288ec4c13ad463a63829', 'f77895a3af02145a2b5cbbbd1596446a6dcea3b0', 'b5ae5dd4cd8ed6d46d5c903021436548aa36bd0b', '1c229d4aeecc898b349b60d9cc554b0ed00aec0f', '44d5072935495893994a91b40f7035308d0e351e', 'b919e4ce1450e3554842e5f9108fe1cd837f0f27', '676713e03f4912455354ee5891c4fa81d99590b4', '1aac0b6ea3291fc192c79b82dd1dfb1ca02777e0', '1275fa852bd0c68febf1d8ca38b527c9b2404548', 'b0142e15f0399ba9d029677dc128e918b3c381c0', '26d7b640f425a95ebb78e5709c545c344371ddb7', '2d3a8cb74a8e645e04aab7e8761eea3f40ef55ad', '1bb0e992cff45a54d29e97f47a7d1281435a5e3b', '3059e02f9d655a9ed62ce80cc53243c2e5bf12e3', '0be2972e802a68de6066e692b402d75c69b94c33', 'e7d51de6377af781855f5aaddd4772f6182b8d1d', 'bc6c9049fa1d4dc56d50c2c9b8a945c6b09bec2b', 'dcd3c8eccbeaac5dc0da5837f3cf220e8e21f96c', '795dcb6e8afa4dd1ea0b904edc3f873b6e9fc181', 'fd977a3af7be241a9ed0213acb3aa75e5dc00253', '164cb3a5b9bf5adcf986462d0bfa9b14a2ea0a25', '011e20ebf721a1c6dfec42e8ed1e2ac566073a2a', 'a2f926179d8aa42327b394857ee65f1813b77ed6', '1665601c2eda5ed92cad8dd4879e46af793bdf8e', 'abeeca6a1481027e238057b9f7138b1f5387f242', '75f69e3fdf9308c720dda2a181909df6d635b7de', 'a07406ff086df3d2df63d04334812809daa53b6a', '2646b073839a897b777b93e7229f287745c8a2d9', 'b4da4913b5a359be92987efa417537406de5a336', 'f67bdd42a2c664b7283db103b49a2e5d95f53823', '12255ad2dc5e24065c29137e415fdcc743b03b09', '07d2809389f6bcb2c232bc28f7457f12d76561a5', '2d268ddc48e8175bfc83ca04c006be41a76cbd26', 'ee73bc35e856c6ab464b1168ef6be48bc5d49ead', '1ccfad270acf0c810365000a5b7b1202b946a80c', '1edd1dad481ddbfb7c7735767a48eb1854ac5ef5', '11a92d7b4a838ff9119cf928c55f91ca353e2c8b', '2b32d1a7aff3b24e3a2236bf96d7c293ad933c32', '0a08023cf58fd597ddf23b45187d9ac255fb8ff2', 'f46a7df23ae1089bf5ac45eca51c05b423ee912c', '130cf54fc1d3d3c2de2febdf405087bfc0af07f9', '132b2b96189f2ec6d52bdf5ef1350b0cc32c3b39', '29ff8189476530f9911ac91136e243c31ed708f3', 'ed8e8d2a28a421a676fcc831df3d54f5bdd73f4b', '3e8f00d2264d44a94eaf17b4c3912a69755f3f7e', '8b1a3d0c37552823c9ba241f42a4695b3490117a', '93c018b147c540cf86fab5b3313c726e6d834bb9', '555f3b025612c4e974002b44557de6f99d6dde10', '3db54c633a9e85ceb2be1fb42ce621b4d8ddae89', '4f80e58ed0dc492a636424eabdca54e7ac793865', '795d1626c77816f86ac1eb8d78c3101942072533', '2c790ae489e9ddfa4c3daa4650a81c7802017e83', '05a83a7c1aeb1f8b9786599a98fda851c649f972', '92fa127222645a92ea37393b7607e90945faf15d', 'c547eff4fbfa40a9c01f2245644bd62e12f114f7', '38baca34a3a4b71985364f63e7703dca4102c1ea', '99f977e2743d2837da2220a64e3e1cf670128ee8', '7dbbd3c8fbb16c74d85427d9e2a3af1448e85742', '1d46c19cfbaacc249aa686a9b4d78834a4748318', '2c1c9a4126880c99fec3e8e5dcbb081c7b80a75d', '172b8a530c6f1946a495576ea9e885874db2f288', '5df90113fd5cd4956e5135b4428e61b8ac8bb131', 'd73bd2355a2d42a4e56384a1ed451a10833e6e39', 'dde939787f5816414aa5d3433912063fe46271cf', 'c420057010e6ee7a7f310ea43fb563cf8b84403c', '957e5a532bef0002d98fcb30eaab5bb4b21328f8', '70d12fc0dd1de471525bdf503281de165f26e1e4', '21f3a763336708abc51d71bcbe48b925d260d308', '2aa08d092d0199c06d22684642ef1c79d9722adb', '8427be40e53c4ceedf57858018c1e79e65839586', '62d59ccd131a148d1446fff352b958f6ae3169b3', '39b659030076131ea5010f0264cb233c0e20757e', '059ea3d13de011f91587f1d176599605274f8ee8', 'b51737bd5018a4ff3020b5fc9c123f5b117c5947', '87fdeed43264d9e2fa9d56db007cde1a640a237b', 'ae0cdd92bc54930049e37c6fe795b85993966f61', '8916e5c6de1aa3702de8495f22892d325957704f', '33b89e718e692bd6779eb805a792de8c76d63ce6', '1efaee6f4a0ee182fa8e0bb31069f2d774694553']}
*/
通过结果,我们可以看到在场地5a0546857ecc773753327266内有941个这样的WIFI接入点。现在我们依据之前的描述来完成特征提取。
代码语言:javascript复制INPUT_PATH = "/Users/admin/Downloads/indoor-location-navigation/"
import os
import json
import numpy as np
import pandas as pd
import glob
import gc
import matplotlib.pyplot as plt
import seaborn as sns
if __name__ == "__main__":
pd.set_option('display.max_columns', 1000)
pd.set_option('display.width', 1000)
pd.set_option('display.max_colwidth', 1000)
ssubm = pd.read_csv(INPUT_PATH "sample_submission.csv")
ssubm_df = ssubm['site_path_timestamp'].apply(lambda x: pd.Series(x.split('_')))
used_buildings = sorted(ssubm_df[0].value_counts().index.tolist())
# 对楼层编码
floor_map = {"B2": -2, "B1": -1, "F1": 0, "F2": 1, "F3": 2, "F4": 3, "F5": 4, "F6": 5, "F7": 6, "F8": 7, "F9": 8,
"1F": 0, "2F": 1, "3F": 2, "4F": 3, "5F": 4, "6F": 5, "7F": 6, "8F": 7, "9F": 8}
# print(ssubm)
# print(ssubm_df)
# print(used_buildings)
bssid = {}
for building in used_buildings:
folders = sorted(glob.glob(os.path.join(INPUT_PATH, 'train/' building '/*')))
wifi = []
for folder in folders:
floor = floor_map[folder.split('/')[-1]]
files = glob.glob(os.path.join(folder, "*.txt"))
for file in files:
with open(file) as f:
txt = f.readlines()
for e, line in enumerate(txt):
tmp = line.strip().split()
if tmp[1] == "TYPE_WIFI":
wifi.append(tmp)
df = pd.DataFrame(wifi)
# 对最近接入点WIFI地址bssid进行统计
value_counts = df[3].value_counts()
# 获取WIFI接入点超过1000个的WIFI接入点列表
top_bassid = value_counts[value_counts > 1000].index.tolist()
# print(len(top_bassid))
# 将场地与该场地内的这些热门WIFI接入点列表进行映射
bssid[building] = top_bassid
# print(bssid)
gc.collect()
# break
# 对时间戳进行分组,对WIFI接入点进行去重
for gid, g in df.groupby(0):
g = g.drop_duplicates(subset=3)
break
# print(g)
with open(INPUT_PATH "bssid_1000.json", "w") as f:
json.dump(bssid, f)
with open(INPUT_PATH "bssid_1000.json") as f:
bssid = json.load(f)
building_dfs = {}
for building in used_buildings:
folders = sorted(glob.glob(os.path.join(INPUT_PATH, 'train/' building '/*')))
dfs = []
index = sorted(bssid[building])
print(building)
for folder in folders:
floor = floor_map[folder.split('/')[-1]]
files = glob.glob(os.path.join(folder, "*.txt"))
# print(floor)
for file in files:
wifi = []
waypoint = []
with open(file) as f:
txt = f.readlines()
for line in txt:
line = line.strip().split()
if line[1] == "TYPE_WAYPOINT":
waypoint.append(line)
if line[1] == "TYPE_WIFI":
wifi.append(line)
df = pd.DataFrame(np.array(wifi))
# print(df)
for gid, g in df.groupby(0):
dists = []
# 获取WIFI信号日志和用户地点日志时间间隔最小的索引nearest_wp_index
for e, k in enumerate(waypoint):
dist = abs(int(gid) - int(k[0]))
dists.append(dist)
nearest_wp_index = np.argmin(dists)
g = g.drop_duplicates(subset=3)
# 拿取WIFI接入点和信号强度信息
tmp = g.iloc[:, 3:5]
# 将WIFI接入点转成索引,再将所有的热门WIFI当索引加入其索引,再将加入的热点索引值为空的替换成-999,再将矩阵转置
# 最终得到的feat为某场地所有的Wifi接入点与信号强度以及此时用户的位置(x,y坐标),楼层以及场地
feat = tmp.set_index(3).reindex(index).replace(np.nan, -999).T
feat['x'] = float(waypoint[nearest_wp_index][2])
feat['y'] = float(waypoint[nearest_wp_index][3])
feat['f'] = floor
feat['path'] = file.split('/')[-1].split('.')[0]
dfs.append(feat)
# break
# break
# break
building_df = pd.concat(dfs)
building_dfs[building] = df
building_df.to_csv(INPUT_PATH building "_1000_train.csv")
运行结果(在5a0546857ecc773753327266_1000_train.csv文件中)
代码语言:javascript复制/*
* 提示:该行代码过长,系统自动注释不进行高亮。一键复制会移除系统注释
* 000840e5c600de293cea57f13326f273c86c3988 00ad587dcb9c7ce3788b92e22777a22ee0efea31 00af060fc145ee6a6a50475efa57b91cbf54237f 00bcc61bdea4d52d050822d66952dd707c2fcdf3 00f0904087c01d922d6ebf3005607dfdeaf6687b 011e20ebf721a1c6dfec42e8ed1e2ac566073a2a 01d2f676abab6ec03ec5dc696bfd49d66e392ea1 01e25e4a25acd32baf5137b3031151f751fadbb4 026c2f057932da75680b21ecdbd23bf9cb9350f3 028a310e23177c3747d37971678dd964ee28ce17 02a1be3a5dab38320f879489d8a1e0f2a72768b3 043907be508d7eed391e1218cadd52308c4046e1 045ef6205f933119d7e186aa4e55fd6737cffe48 0482b38bf4daa9243fff612a2594d8206fde8fd5 0489782c0949a75a43da32cf6defd66e9ffd4f59 04af33baa87957b484fdf8d5f17a64f972af7f2b 04b820b511e2ad7b23e75c34413a1de404d4ccfc 050bf0c3db9a1017be0fc746de7b5c1a68a918a7 054639db76db4b40ae6ae4dcc615a661b3c1f532 059ea3d13de011f91587f1d176599605274f8ee8 05a83a7c1aeb1f8b9786599a98fda851c649f972 0681eb49559b2047783aa8b5cadc8501954f3b68 0697d08b2741a320bcdcbb9624caca0e3a415356 069d1a6cd62e727b197abd1c5efb2f678157150a 06aed0ed92794f30f58f2991e09e62bc01434362 06e02065793833706e3045b5c5a0b7c645ec76b2 0746024a3e1bc32db07864be99f31da059a871cf 07d2809389f6bcb2c232bc28f7457f12d76561a5 0874d30f54b9b73fc02e8dc90f6b24c20ddb0132 087be6452a54ea53874070a1b07f1479f06e1a78 088641ea2e5e631fc12f049655218de9b04b98e5 08f142fccbf96e34e95e8c17442a459f429a3310 093daa800aa8dd3a4543b51cdac53ae71fac9dcf 097599fa8b0d2bb4426ba0dae5ca9e578cdb8149 0981ea46343ddc36e67af51d3832ee20055e31ed 09e7a3ace3201397480073d7fde070df500d5804 0a08023cf58fd597ddf23b45187d9ac255fb8ff2 0a23758a5622e59426bd94da6702cf3262acb80d 0a32c7b628a7a216a79e552b9162822f0b66c348 0a670fddca113cc7a87dbadd903190dd6d22c75d 0a741c9b887c6f7793cc6a3d4c8fa221de5988ca 0a82da00c486894c4b08810661bd2a835898448f 0a92e69e85c964ee03c2d7f290b977d05a2b3444 0acd5446bf9e351dc039c99e653c4e398171a9b2 0ae129da9fb6e90b624d53a7e34a3edbb0a7244b 0af23ecb287b87d4d0528c23181e8242ecba1582 0b3ef761fe9c3069e744c6d2c2dfcba9d9b1f9b4 0b5f69e5bbfd1cd46da3b29afd1d674c0925c2ab 0be2972e802a68de6066e692b402d75c69b94c33 0c235b02dd008286ea5053621c7ce50df7f17e10 0c4130e1e769677a016612b48d96480a8cdd1dc4 0c75aad30012f215ae9377700feb44ee1ce42b88 0c9ac4089f6dcdd7933d6ddc7a3551a67f7549c4 0d0221202a9b42c2561704448ef04840b18ae8a8 0d22d098d33a2b3ba059f1d9809e45661ef24739 0d65bccbb61c2aaff137673e2e3e401d305a2621 0e005683e100c08b4b74c76e6392c3dd86490690 0e2250a84319bd6fb557786aa36b3c329f9b4fd1 0e5814f651b6a398edeaaa76c4a6d3d2920be890 0e5a262402b8c9d98a3b5a424863f6a6c655ab98 0eafcd2f8e1fbad0cc7b0ee227d18c772d562e6d 105d017be5036876409c1f48c31f7f5684e61906 107b4cda60752a916e9719ed0bbb177951144855 10bae54946b5b77e8dd6b95fe42eeca3fdb5e0cf 10cf16ad6534635699a05f3a6c344526b9d7d549 11035847ca0854c99104df042eb0c28912b47855 110ddea0853350606bc1e744fda00bfc8f8c5437 112de1223847bd845f0f6f2a6ddcfce1d0290f03 113b2ccf3a21d62269e24c8a0b2907871ac0548e 11a92d7b4a838ff9119cf928c55f91ca353e2c8b 11b29720f56e05203439593fc1d09d068c370362 11ee5a7bcc33630821f55783947909ad6f64a3c0 11fa59b18892d70b03751701eff1707495ccf618 12255ad2dc5e24065c29137e415fdcc743b03b09 1275fa852bd0c68febf1d8ca38b527c9b2404548 1290ce7d7e17eed000ac5928f4f32f681c660d12 12b84c152a88b83c6ebbfa5a427101d14a3ed941 130cf54fc1d3d3c2de2febdf405087bfc0af07f9 132b2b96189f2ec6d52bdf5ef1350b0cc32c3b39 13658398bbef2ab3a4d9eefcbd92fa5c6ca83152 13ab407e5ea93d8d63431f9b41fc644b7c739eda 13b7aeaf441f2161481481fe67eace721cff07ab 13cd1e6a6af504e46baff3e4ebf4084566a55272 1477e2804baeafbd9bee7bb329bd44359af70b35 149c09a117b9851201c75f97b4a7cc94b75fdcb4 14bc29d59e0046cc7d5ce53054f702da18f37c53 15705627b6d4a0995188c4a97eb3bb604abcc401 15b5928c3944942e322366d6548d690de9a6380f 15d4a31cd3d067065469f1e9e969cbcf02d0a479 15d53b7189ffbd7c6010c388a9ccea417d4f28ee 164cb3a5b9bf5adcf986462d0bfa9b14a2ea0a25 164d78c002a490c56bb036db273c707e311dedc5 1665601c2eda5ed92cad8dd4879e46af793bdf8e 169479ef75a2db149091129bc2e009b0c3f26f9f 16b00a9a9b2a6eba2df366a2404eb0d0f3d112a1 16dafadc5697e59f75664e1ba248486eaef2a782 16f784df42e07d8bb8cf954e768166f988b6ca80 170666b28105d4de067ac45a212d15d95969c46d 1716f6964059dcf719b04fdf90f527b33936b644 172b8a530c6f1946a495576ea9e885874db2f288 17abef1a35c19c0506e685cdb6c61d904c654c61 17e52cc2d8f8d4e8413bbe1f0a4aae1731b84aaa 18043de4122a4b6599cc0750ca0427b2a5d7f49e 183d60ee138d2bfc731545046c9b6afd81194fa5 186716ceefe9b26f5fde1ba4a00e0edbb83f0d04 188f28ea467a7d319d12792188520349f94b459b 18d348ee298c84676cf2b834ce063218e74a39ed 18d48d7996830945f6257f2daaecf918fde87dc2 19165c986d0ae8c4b34590617cdbf6568d808930 196e40ec0be68e7d1ff340509f8072ba3a470df2 1977049d6c8b84c76d71864fd05c5f25d61abea8 19787b1ee33ac886f9784105b5da6548d838195c 19b7053e57f4bf183d1e4addca8ef9c155598ac5 1a11be1c59c0057a3468722ca654f596fc846f7f 1a35d579a7b3676bbaf8cd8b5fdb260f0d43567c 1a3783ca71d48e6683d3053004bfaee323cb3415 1aa43824bb504e2fcde734eb18421f4890cd2894 1aa7a26d2a229500d44fe3fdca4bdccf61c518e4 1aac0b6ea3291fc192c79b82dd1dfb1ca02777e0 1aebe03ff86398cd62ed5ec0da3650e9041baa31 1b51d55a893a54033a8bc88278c2d0ad7ee87b35 1b66000d0d96cc0a1edeab4593a1e1e217c162b5 1b8286ce49240e893317288ec4c13ad463a63829 1bb0e992cff45a54d29e97f47a7d1281435a5e3b 1bc27f89396ed1c36aa496f448551620bb4e1f20 1c229d4aeecc898b349b60d9cc554b0ed00aec0f 1c8e3ea2ec9808edfe25e8c3eb6fb2ee4bfd7c16 1ccfad270acf0c810365000a5b7b1202b946a80c 1cdf73f6cdd794c3695bc868cf2742fc50d3174f 1d067d90fd180e2de69d53c8f42bf26176fcd0f8 1d14b137ab03637ad1bb542d4acd1c515c2fc195 1d1d62dcf72481cc9580fed3b724f0d27015aaf1 1d46c19cfbaacc249aa686a9b4d78834a4748318 1d52ac70bfa8eae028e7b0d05ef5ca2bfcf513e9 1e03d9b22fdd3e0a9141525c2772fe1c82327124 1e10f0386854e58a5d81c13c76409217721d494f 1ec5e4ca2c856b82dd0b298e8c4382d79de95e21 1edd1dad481ddbfb7c7735767a48eb1854ac5ef5 1efaee6f4a0ee182fa8e0bb31069f2d774694553 1f2eb6a4fe21ce42ff5d8184f78bc0e97f6a121f 1f38cc3d16cf43dfdbea382785f717bc3a30dcce 1f6187b5a484f10cf8ee49b0483e1aefe6b2ada8 1fd4e31d82de1a11ddeb8016b9a8d0d888ab7680 21f3a763336708abc51d71bcbe48b925d260d308 22831e75f02c45ac378cb5a5a3c22ed275be3bd0 230b0585ecc40e716b7327b977d7f1d357558bf7 2316d69de2343b00b2ca25e28e2a7b2224bfaf9d 246222328f56331300113e7da7eac1ae805040d7 24b3f5cc0a5fe1beb238b1ced0e722bcdc8faa88 24fed59e87b0abdfca829b467acfd33c5b99099b 259810e7a8b5203d5a6ee014be24726be53cd1da 25e39f513d9ac2eeb3ff3fe29d82d41ffe9c29f9 26000adfe17ee51e6647e74a75864e8e4eb6c454 2646b073839a897b777b93e7229f287745c8a2d9 267eaf73afe0e64fd2f330535e9958fdc893a93f 26d7b640f425a95ebb78e5709c545c344371ddb7 2798955a957d1c8c01f6341133cd847016b2b742 27b1d42a208a2eccdb70f128f0a75c72d6584786 285cdac12c1f62863c42e4698394ad5182f55687 28732583b77da2d5f2847ff928947d42cdedf7d5 288862256f960e03d44ab2f7d1eb2fb2db9f2eae 288f3c61d2f10cc122ff9cd09c27c5aed544e4e2 2890d0aef53b7a7be5e7c44bcec572329cf391c4 2894412c71123e5b9b424d954dc07389af7c999e 28bdb91a7dd97f23b9b026d1630ffda67113c32b 28fc1642ddec4455c4fa2f18a04b0b15f1c27bfb 291c30876ff92945236fc448dc48fb628c5108c1 296ea9e41acd823ca04a211edefa7cc6457728a4 29fbb6e4c43ceca86657bd242fd67eb5b97b97ba 29ff8189476530f9911ac91136e243c31ed708f3 2a25663447bf006f61d1a84f36a48d8039216b8d 2a8748d9e77634ce29b193eb6d3fed569755841e 2a8d84b34120d09d9e5ce7f54b4dd576db675edb 2aa08d092d0199c06d22684642ef1c79d9722adb 2aaf2ffd96ed70b9b9061cee68fe2df8150db3e3 2ab3f38e73b53269d6883b8be80da9d38a86ef9b 2ad2da7d639746b33d7a6118afad5a2964b58ce5 2b32d1a7aff3b24e3a2236bf96d7c293ad933c32 2b8287e26eaa418c6bcbf570d4b45ce939b57713 2bb807107c76d4339fb55c9da49ecfab1f9120ca 2bfa91c7f173dbc6d1acadb5ba6bd03dcbc9af39 2c19f866a7729991666ae5f72f20d60ff9805bbd 2c1c9a4126880c99fec3e8e5dcbb081c7b80a75d 2c2969a226f4951211e7a68f5d0d04591edfff92 2c790ae489e9ddfa4c3daa4650a81c7802017e83 2caf39807897e4577f271ec67e5701eb36101b2c 2cd9127d8307f1ffdc25327f0d14c38eb93753e8 2d268ddc48e8175bfc83ca04c006be41a76cbd26 2d31218895f6e15cd3c80d5c298103155ed4256c 2d3a8cb74a8e645e04aab7e8761eea3f40ef55ad 2da1116ecbe23411192c3fab31bb6fb812f267fb 2de7db775eca5a709a31e77db60fd76e9e46911e 2e5db380194ac208177bdbdc28e5b2c84b48be14 2e88627bafac16a05c44723624ac89e19ace9f9a 2f060c2a295077ea60b6e9a27c04d82bcad99bda 2f08d0bea553aef451c65b4de64cd36339fb098f 2f3c7bdb7cef7dbee88bd04571b0ed64dcf5f5c7 2f69e5977adbebbb76a33cf75ba5dcf793eaf835 2f9367172f3410fb9f4f9e93ea8f3b8ce9a76b74 2faede17af914f8a1ed3f8eb79dc56f872882f08 301de390fc0833d74c50b87356b5b90761663b4f 3023d848231c23be1508a3d179fcfc8e1bd88308 3059e02f9d655a9ed62ce80cc53243c2e5bf12e3 309450b66473f06aac98a8fe2dd34a64664a6d5c 30ff46262a48e2a6161019d64d790cf19e19dd53 31fb3a7ff1d2cbbb58e8b8e28a3833ed13186c20 323607d8444900d64151ee06d164738ac727bbce 326e159e0dbace167726287290620e11367bb15a 32ad7772f626e6d531c1de47806b68af6f33c339 32bbd941505866b701812d1a5396315fc1af7f81 32e4d3e636293aef4f3cc572d0c4e0532e907bde 3398f458283d8e32c17efd2838afc3815a810848 33b89e718e692bd6779eb805a792de8c76d63ce6 33cff93335660f2487602723d80ea611a7b2e2f9 33d063cdec3f81b5df082abd0c9fbb382ebb29b7 3419af56cd3a9290bcf16c888777961741c8ec28 342d1bda7b93a729f475b53ca92f32afe403fe83 345c676b57db4d5d25e833ee53b65ec636cfb32d 345c70f0084ce5d54046a6939257931f641edf65 34a47d8f6a0129d83744466d5e644fa8af3b8ecc 34d480125c656175a1464e110e26597c520ce0a3 34fa25445fb58e85e6e49df4c1d84b83bf94a310 3520a54bb4efb13307fc259eec13fa1b53931949 352a78252df63901e641ed2e89f2b5c4f933a4f0 353b26721e24546d44979be16afe68fe8e469594 356ee7cf9a66cac4632bdbf6f7bfe5dc17a4a3b6 365544221bea97f50150a27a96fe47f5aec30c06 365f6991c073ae9d62fbf544d8d1a92ef3cd2dca 36c724fbf6ad6ec9bc344eb294d7ccaab6a0ac89 36dd34379e52abef16b6f0607b2a36a07db6e862 36e6b156d1ef43e2e3a385574302b62c6ba890a2 376acb5fa9a351344c60d3eddef8a6e75ef8943f 37ae76152bff78531ea027d6121d452881f184c2 381e5b7bc9493f99d8c1d823ec49dcae540d91e0 3894fd2dc629a96e16049f951be6b018ff627940 38ba6e95e652a4a220c0582ac5a97be219a3d997 38baca34a3a4b71985364f63e7703dca4102c1ea 39341f741354e67b5550a733276aa0ec48749640 39648d81b21198da0f317efade93c2e7cff7f45f 39700eec08c8413ec97e05b3e2df689ddd8b34b4 398b6d36d804b02dbf68e8fad39659af9ad16aef 39b659030076131ea5010f0264cb233c0e20757e 39d5d9e3c67115b98e89f19d25c908c99d627b21 39e2a4fb550a6b4a0feb5f0ff7b07754b1e27eaa 3a1ebc492676823fc788feda7793cf7c305fa28f 3a25cb6ba0c7bf52d8abf6a5279a659dd03aeea0 3a56df821ba1b5534e57f8aae6e0471d1c210680 3ac3aff784fd9cefbc9bfd63e1574fe8ced37b68 3bb746eaa26010fcc06521266049c328e8e2ebff 3c3f92975f731b7b7244d5dfc280076b446510f0 3c6695768483eb6b30d3e6f40f1bfde02e740e62 3c818275348ed44996f3c1d4adecf26bde7eaf36 3cc8427407f97ced96876755648c548ea61527ac 3ce53e146c68925e9e5c8871d5f453f35b016c69 3d12ed187284f7bc5c53f6e7965e918068e52b1a 3d7b301dac8ee0890ea302f81f318dba80607e0e 3d862fe7bc1492cdc4eeecc6c67662f2e1accbe2 3db54c633a9e85ceb2be1fb42ce621b4d8ddae89 3ddbf6a9b2084721cd633523afa18ff69d03aed9 3e773353957a7a0e2485090d41de1fa5a65df532 3e8f00d2264d44a94eaf17b4c3912a69755f3f7e 3eb34667700b5851a02680c0d0d10249ee697032 3ec9cf559a195a0d7f65be92f699d42b7b093646 3ef9e807414a069dd4dcd23b1c5aef9529efd5f6 3f15e2a8a621434970309b3caf94b09778caa8ab 3f55f400dfbc4f9bc3528feeb15c7ad39208ccb2 3f8cec303c3ebf4873cda5e9da225773d264d2e0 3f97662166de2a7c0efd3f556c48df9a389bb129 3fc85c6ed457ddae1069baed856526b64eafa406 3fea4a01d89276bb6aba87c553e06441e4fc9095 40412d53fb1140365abe5886418417a12c894b2e 4074d3eca583baf4fc03a0c0d1d6ae3f6c18f448 4076540e52ced66819b700e0a8ea61e76a32d4b6 40a9263b2f4e0ed0476fd5f52428e573427a54a7 41311fb3076dbebb93a96b726e616286447041d1 41515f6ea505b50a591da37a53be8e0c448e1ee5 41c8cd40a6eed5e4f7f279eccbc71c5a6fb32952 41d8e047515fbd300b8dba046f0352cdc277f268 4223cead342994758116c66f46cd8fdf658ed260 4281cba285ae36bdec81f9d32088929a9eca619e 43cfddbf2f289ef696f5d11aad0351755c39a1d9 442570aef8ca92862daab102ceb064d1badf958a 44632b2065e713e44db3479c9cea158b0d7d7b02 44d12358a989274930feef5ac3e21ef3c81269c5 44d5072935495893994a91b40f7035308d0e351e 4570a3b13d469da6e23fb35763e1307401b5ff3e 45c201669ad8fb78fd9dd12288a6a32781c0e4f6 463ec9948b44589dfe1c3f3d1ad8d923cbcbb4ef 46c4e84652f6493051769d1ed240c1583587d2a5 46dddb684b47bb978fdec005f38cd49c987e8b91 46e733fa58deea74d962874847a529fb4897e655 46ea5bf55e1433fedfc9c87fdcf83c42e6a79094 4779c423af989d257c7945d1263bfe9e00503946 47d81bd48afba5ab715e3471c7e93a5d5da3d739 4869fc196d482be16a5f1867b3036d18c0a6436c 486b1a9d061fe44d5a1c3f28e922baad454e3f02 48b7ba19fe5a3fea731fae64658b620005de0823 4936f4b5f66fbfa3d2264ada20e8ea1ba06fbfbc 499cdcbaf798d669e117c2e3758641fc2e55ac3f 4b313188f14772e5fe02b35e58d00fc07b207149 4be384ea949b30337e12c9c51d08be8550e04921 4c18a347b96914e2e41274b90691c55c41214790 4c855e83713c01e6a46a1669db047dca05320474 4cba0264dbb07f5315df15eb73ccb62289f2570d 4cff1c8cfec27801ddc9a690ade87c57f1142ee0 4dfd44ed83a3e7b78504429fa61217be94a04f2e 4e9e62dc67a0ab626e381b4b597c85036474686f 4ec476a535783b1129828738a517f58f8c275ae0 4f186cc01487f44870a0b07a70f6d2205e515763 4f1e1ecd5f7c4de40a70f00b7724ec6c8dbd85c5 4f80e58ed0dc492a636424eabdca54e7ac793865 500f56d1499008047d41c74dc7f5b81de763e901 50354dce4504e2e95b814a2680e8f35d70ad810f 50b11caaaabb8934d19e99b0dc6cadb4ea516eaa 51368a6e7478780aef119e0931f4933d779d73c8 51d827709d0dbc51267601d4534d78c68f2cdb7c 524632cb8ad6d175f10c530411e02950474d5cc5 524adb9add1079ddd0428c596143e33977e4e36d 52572c394df497d9c3700e7dd96ec9f9b783939a 53c8ee4789dba74be0badebc3acf8fcea6c9c09b 53dd521cc8b171d4f1e8aa1f6afde4b7a3973503 5489832ea07a2b6c488e0b857b18ca2bd5c79186 54c9fb0d4b835217cfa0b9f7e8164dd162bb7b43 555f3b025612c4e974002b44557de6f99d6dde10 55834d7f27b32a77b52e5dfea1b4ff3c3389e1f9 5675bd356d70194b25d58778e4bda725455c8bf8 568ec799c7fba15a6b161b08eed9de98fb3f8f50 569b9dc11ec4070e279449a1673bc13c34ea38c3 56c9b3f12ea50cc029bd7d503a77a670341d1d43 56ed070a755a17100ff90bd5177dc60320df2ed4 56f11dfcffc802e26be318861d54a0cc0e98e307 56f1eb9a1835641b240079081312a288dd1c902c 57290977ad70b322595e54de3623f48db7e2dc2b 5731a1cd721379cb00ca17b7fcacef1252c003b8 575d099c9ae606cbdad5045613530ff24e28bbad 57e252d0e2004b53312413c9c9283fa1927cffef 584f44ed88f51e7ecf3c550df2301db3166a5aa1 58f01d7d71a5b84f6be28fa2e0923b3444637280 5904143608c6bf21a5f8f5d6e4e842afb8ebfd3d 5906a627d57e50f2ff28b834a6b093dd52c541e5 5a1432d626e13770f303225e32a27f3287f405dc 5a1b76adb81b4e42fe9955ebfa04cc331a0b2927 5a8c96dd8519e257c0c13af51cdf72e89bfc7339 5a96e1418a8278183021eb04f6f8a5f79c2c5914 5aba6eb8bdc82602c12481729b288bfeab6b5546 5abe9b0c9f421b4c1581a9e801b1786c0a20e272 5b19322b33f8551bd17f4cca5dd1c164ab7ca59f 5b225e187d0dec3110683a74d0c9a5a4cb2022f5 5c2779b69279b29ca08c65f04aa57c66d2244ba0 5c400718b1e3a69dc9065a1a84ffd7cb51366078 5c547ee7bec2229ebdf91fa4c1fb93644f30652e 5c6073f84f826777aeb0d458fab8af0ee0601f93 5cd740d96069c2beb55aeffffd70ea7337f100f5 5cfff2a06e481233f2df41ef8adc590a0d779517 5d38a298f926cd7336b2f86a9e1be1ad06fa869d 5de6df3ad5cd2ff86fc7e711a91a42289a82bb66 5ded3c04560f13fd035124da9e887353e2038287 5df57fca60cb48fac97a573ea4f2bd3a85f045f4 5df90113fd5cd4956e5135b4428e61b8ac8bb131 5dfed06a2dc471b7c159ce9176da2ffe187fa478 5e68e16875fe15e105884521db31b823a28219b9 5e78b3ceece619fc9e8660c2a78f41f0c2beec7f 5f6868dd5e53b0b7943c7c0e56f1563ac3babeab 5fb57c47b20944c48078ab510e7c8eb8055d24a7 5ff5473f488316b5854e6e95af280ef1db505052 5ff6e3f676160afdabff591bdf582b01028749eb 5ff84d7218b7adb864c66a82454aff0d0104508a 60176450b094ffca7d3acb2414acf82581d5813f 60210e8c383d286113182241bdf78acb3697b294 60314ab282cdcb7b9b6eafba1a2410b54e192572 60486781563e45fd73ac9038bf87249e1ee1e106 608ff90f2f98f684291177c70b1f3efbaa097983 60ba7403a1a1c27c1d28780bbd48980c16cc894d 60f6d22eb3deec6dab7a568e0e0486c09cdd6a7b 613199d43a7c42ae1bbae985a431e13fb9edce23 61a14256d195624aadd9dfd55c8643505635edd7 62c80c57dc1147cab98d7589b781ed5e5ecc1a37 62d59ccd131a148d1446fff352b958f6ae3169b3 62faafdc7a2497fe712c04ae942c0e4aeb0ac0d8 6316fc52678b869c908390f9bd12345bcf07052e 632c4bf5081efc020d134d2e5374ce960a0475f5 6348dc6f36e47858ed067cbd55e67bf5df721058 6350f07552fda4c9c10ef19e1087da458645da8a 639c4006a6b837f762033fee794a03b7c101645f 63d0d455f48e2be51297f1e695fadde7c49a7025 63eb11031a958d95443425759ebe5805dcea5e3d 64a752d5b7077f0a5b3b810cc8f3a7184917567c 64ab291428bc630f95d122e2224100db83d21bc9 65037b9100197d7ecf053416bf6b9bd91c2df1d0 65ad9ebfe0da11f6cc77e863565ba70b579be115 661ef3ef6c6c03d166a083e05ad508dfb3c20d72 6694cc6680892994207959c12f84f39ea32e3c6f 6729afdb470f55f886bfbab90cbfa0830a2bb75f 6745a06061e956a0e43d6f545af6bb2dff64f6c4 675694e28dac34adbb1f7d058cc8546c2e6313f8 676713e03f4912455354ee5891c4fa81d99590b4 679c0df4f6248f3003ce0011779e5cca7903e668 67d2b03be1fd343064db3c2895fedde9d8f74839 680ccefeb88f88e82c6d3b277490a4390d5dbcda 68616cd56e6c03f67852c7394ddde68b07d7a3c6 68690a13a8d7164205c5ccb902393eb6392428fb 688a2ecf1f543651ec563d2c397b137baf8d39ea 68a30ff9cbd5bc57dcfaa484fa178f24e8a57128 68d3a0a05bc8c9f39467f25247e4982a711fc63e 6915ad24a2edf8047f749233e19e9853f5dc17fd 6953ea15c2f2d947e1affb04b64aaf9b38856d28 69b30a314f33a8bafe26c9543bac3026b6171e18 6a11813dce1e80e15cb78efd8d70fd515cd54a71 6a27c310e644b60506a69c0d21c909da4cf4a755 6a2be1d97e71204bc94947d6f290077f59de9013 6a46fe0867e81303bf6c477b739d49bd53096a85 6aeeef455689e43f811721d692c0f76f43fdda7f 6b14a2044dbc040d8c5a1db2a984bf8312f7e1b0 6b614b4d6a79dc2d12958881c41a28c11e955e0f 6b6c054161e0f561d43041fbda8284626c95dd25 6bc91b3951089c3a225396608b138ca178479924 6c06bc0eb391695a8df55e3106b829fccd887f10 6caa1eff718640a4d35f444481ac01fd5827aa16 6cd94cc5251afe872b089db662b5da88bd482af5 6cec3a2eb9d9bba5a48ab33bd040479ffda9d1ce 6cf97f69219bb10641cb698a44d914c27d00b826 6d236c2591283a3c040341b01c424267d98e77eb 6d30c48e55ab600a4e8590c4c2a68add35a4c472 6d611d2efaedb6602d0263a88a9a50c9f596fe9f 6daa34883d9b44405f1db9e78e2a9618340bfe03 6e102b9ee61aa8028fe0a95e87f3dc386010e0e2 6e2e49f898f360b818869ecd5c2d8298d0360763 6e620e961256a77f983b0801e4eea93a0b22713e 6e71e61fda2ee90d02c6ca49ed157025a350aea5 6ee1dc249422a7d7a47987eea4188c5f3fdedb76 6f797cac85ad20eccf7c04c065bed40014cf296b 6fb2dc223caa9605b42d79bda27a6743ebc82065 707a33db19f2064df5f4e9f03dbb439aff81fbea 70d12fc0dd1de471525bdf503281de165f26e1e4 70e4c3bf5952930bc1f3bb7fc32d51b4328b74b2 71177bb213b665eab29c7f0c13810fb43e981127 7138cc44edd6b551955b268a5b86cc76f3a6d205 716fe087c77b73281c5823166f9d6b0fa830ee7b 722db5fcfac4d60eb2f49b6096cdfd990c74f52a 72d79e029accf1776a91a955e9f7b2e01b95565e 7308d1f821b1eff96ff0ac5511fd308afd21f8ba 73417e9243abd5402d33a83243c7b97042c17663 73ac5c0e176fd5f4cf78ba3c62905c87134d9c7e 73edd09835f1a135f53fed3d140abc2d99280399 7476ce0f5573ab0ac2ed31989508c683ff6e42a7 74bd346fbe741f068f3116d3c0398c4abda35dc9 74c4e087344750594d9118bfb6f5320c138b4fd2 74f42e95a555d87d74ed855d2c0b1fefbe988e0b 75f69e3fdf9308c720dda2a181909df6d635b7de 76641a801004400b25026d8ae845950cfe8868db 7693ab76d893d96033164fb31c10dfa2675c5ac8 76b8b1ae2dda171dbe5f1923d66f9ccc839ef32d 76be4331334efa1ab2038e98b71458f6168fdaba 77d933b398825a1c6a9054bde71d44d2d3cb17f7 7805f319f3f591986effe78c5b41143180278f2d 780693bee0db78c4c5e5a9cdab56d6619140c69c 785c32c1acefb7833934ab56a1b830ff8bc39a29 78ee95ef130eda7e8272684ca440e09d6839dca5 78fb204176676997e44ba0e3852b5de735854342 795d1626c77816f86ac1eb8d78c3101942072533 795dcb6e8afa4dd1ea0b904edc3f873b6e9fc181 7969541b4a6e4aedb64983b046fc8bdae157dc97 7a22352c28d653936a6a38916ec5692fe128927b 7a5350fe426e87fb255031d43df2472391688644 7a557aa99e2d7cb8d4f7fef047374faa5de3710e 7a95cc097f0cc3b73e6294b66191617ed27513e9 7acd3fcb74a8194f779b898d07bb4766e1d30d7e 7b819a0594451b33ba9db79f4253533ae0566ae9 7ca9a0e90174ea8295c9a92203f7a80f772e6ea8 7cf4cbc4dc9d809ffadae403bfb2232841907ef5 7d09ecf5bd84e8b7a401a5780bf22d00678b695d 7dbbd3c8fbb16c74d85427d9e2a3af1448e85742 7e411139596115b015661cd9e6fae4aebdbd184d 7e8ea22e8ebf91a2c2887c78c709971b22e4a8f1 7eb1b6f432993717eedf721ae6b24b18ace3a44c 7fc586091374052f653d79dba9e5b10fdf5871f9 7ff6898b2910ead1eedb62960dd3f02dfabf669d 7ff6dc072ab78c4ece184ec846d1f43f45c5c6c6 7ffa5b99ee9c58b098c425b5ab314536b63af212 80531dc75db42ed60fe5bdfe591d751ffbb35aa2 8065741d577aad26b6f1decd65e64aada3becbc7 80e0e21ba06136f3b168295fea79ede3a7b43f12 8130c3c8e8c3225d872c2a4df99c7518067632eb 815627a3e3ef0cf88ae51cd0376df58080f09983 81d42ba66d22db77b862e07e3a84202e58f8c29b 82394dbb9ee21cfe2f4e015c2cc9d5c60938bb87 82d3e82e724c419efb1e4e9eeaba32f3d4dd1376 8329197d05d0b73705bb00d86f21b829f7219bee 8329789acdab218996262d0bb85d25451cf6a17c 83521c7ba9dcefa54b2b43596bcce59e86f59194 83c76a690c971168f492a7a6fe4bc7e406a37936 8427be40e53c4ceedf57858018c1e79e65839586 843620e0e07486017d7d75613802cc3f9030e0d2 845ca2b94df27f19e8046fa5312b1e764da39254 8464ea586ee5479e1250f938d7c01e9bc68cefe8 84815f02df37456c258ff6504bba7bda8a46ef52 84fe52504769b4ee72e0796b73daaa31c36cc8ee 85e6e3acc4f0005b00f70931e3f268bdf650956c 8603dca5ec5f3485d28b66fd818ee3540301bc79 869f76279cbaf6f0520f880bef65cc1c20d36e53 86bd6179355aaeb54bcd541040f23808d6656442 86fbc9d659081f7496d25057e5b42c67dcd2e7bd 871e0262a3611b2fa73b762068119bf94ee3bc97 872f92e5bdf2d3ffd946c44133793f5b43552400 87888db3253c59408a155e98d5a4bc0e3dc4535a 87f46fabed4bd757563312b411ad6588cf3052ea 87fdeed43264d9e2fa9d56db007cde1a640a237b 881dc237bc6067d8428ad3cb590315d01c80c743 8862d0629fd543a489e72c0b4f22b6f9331f42e3 8871a212fde81a8b7b0b93bd7a6f75c2534b310b 88f3338da2764fa2ad20177ee7a06b04d316171f 8916e5c6de1aa3702de8495f22892d325957704f 8983c021c95aeecab9a6d28da99ecd18ca5cd3d1 899954c287cb41ab8f1fd69b6c7e2bdee6c1ca59 8a771a59db10ce9d4de4a8ad836d23896738e02d 8a92863c27ea14d4435762bc1fc700e743845ea2 8ac1353113662ef60ea50ecc34f110fa922963a0 8b1a3d0c37552823c9ba241f42a4695b3490117a 8b3c0b4adecdc3281c15a824690f5bdf8563ad82 8b4b95e5b6842b2d34128e942c2fc3ca551f2386 8bac8930d7aa6b3454d1847de9de0b19b22edce8 8bb2bb43f7ca5db5e821edd61514d1a42a103039 8c1cc741628b97bff8c00412778ae1b461d613c6 8c584d606c197d5c6d2bf059b0db388b1aa2f882 8c951612f3b28a7a6379de232d74e54d8411cb11 8caa968ca60137149c861dbc10aaa4e70911a3b0 8cca161805b3c5a062778e8b34df3caa5e652185 8ce477a21ccc45347bf45921ed59aede4f21866f 8d62c359632fdd988c4eedc2392fa2fec0dc2f22 8d8caa754528e2b2eee8bf2b6362bc950968c959 8e421ac31d0c34bc87a0bc61b66e0eae44d0fd4d 8e6ff1f522258bb1726cd716edb4b988b4169497 8e913a6c5302ecae9dcd6076843a4c04218d53cd 8eb7c9848aa1e78b0da3b6f9f4f730885b0cd4f0 8ee3c33d99fdc8b15e0d106bf707e43e2d0866a9 8fc106e49986a0fd290fd3793254b975d9872050 8fc8682a1367fe809941547ab28a9904925ffea7 8feb4eb0197ac7900953c000677dbc88cc7ef85d 9000e885278b235609922c0b8ad8a558734214d6 903387b11fbfeedf3408343673fd54ffa6efb970 90be7817304c9774d9d8502b68c3fe5d606619e9 90ca196caf0a007f6af40e167bf05139a6882e61 91f6bfbc72885ff91266257929f3e701ac8d9d92 9271d7134a4b8a338a01f6b2b6e3568d8dd1d02f 92a2f4eec56163703abf7fa0aaf61937facdd3f6 92f388b46b7e8a0470190423905c4a77ecee483b 92fa127222645a92ea37393b7607e90945faf15d 935469d9e593dce5c91df7dc259eb678e84df4a5 9395f3c51c3efbd27914a5738950d7f9c1de0888 93b9f91a23332372acfb78d78f0fce1d6696033b 93c018b147c540cf86fab5b3313c726e6d834bb9 93cfc00cb75026eea74e8bb316b3673b53d374a9 93d784be10f3599156e75ca6af5e5852f4af0ea0 93dcf9f3ffa932065ec1e7391cfd87afd1ad1374 93ee7fb4a8b245a824cacb7de7665c606edb08f5 94681cc13d15a92bbf07ad90e90049569994982e 95410888a49789e997c8956c44405129a489438a 954aac3562feb83f061e72d80a6757dd9fd0814a 955c269857431ffe26a78dcf54267eb1908d7b29 957c9a0b84043ae76dbf8847c0afc30024457316 957e5a532bef0002d98fcb30eaab5bb4b21328f8 95b022911ccdd19e37e89043292adb1b222b5c43 961ae5c1f60b834a2fb2712c306c7e40276a2e91 963b140eb4a6b676ed10c75f6f0d3b8203958b35 974dae9e007c97423b9435e63c676e484860f83d 9780331db07b369d8a009eb89552004b88334dae 97a74323718ef2ebcdcff37966c7eb060f82fc36 983ad8a99a1a140aa1cdcedf8bd08b3fae1ba64a 9846e4e9714b57491be0326297102a938b1b65d3 9874b715c22c380173e843483cb61f1628317f2f 993675a9a48d090babd1a33fbee5f088ef7c73dd 9944ce7ab46e9ad522a9aaf2327fd795ae42c006 99582d0c318672b5ad49259b5edb238340a38c16 997f40e8ba5264c2213aca456f4632a32871dd5f 998706ff97e9fb6d19b8c60f4f6aac1c82c6d19d 99bb474dc926f36679e8796c5fe3c5d04064575e 99f977e2743d2837da2220a64e3e1cf670128ee8 9a26d1e00217c44f9cff5628043c9d77c8e75c90 9a31ec22245abf9c0088ebeb67e0d1a534d7b6f9 9adda3499866380c28f87519c8d9acc3c6033809 9b89977c81c4c38bf39e25ec5437a49871cf4c31 9c472f9c7acf424f2ca0242d5c2dd4cfc083b8be 9ca64b8506ab226aa7382a2a14256de770c4ec7b 9cc80ca7212ff8df8aa509760e6759bcb7015da8 9ce8bcbc19e89aed9bed2e58f51579f2dbdbf835 9d2436a7b8cacab6f5be1f2a6a1cd09f1c833ba9 9d495d737576575c4143a7b7add3d14a6192c960 9e1cbe20926f9883262826bc764ff872d80c53ab 9ea330be4787b838d931c30f76aa9eb4ab69367e 9ecf29b71c9cdc5e7c03b47f6511a62f6488928a 9f0372b93f2831825a4b2ea75cfdebf84d9dfb8e 9f42c84af7acbe3b668532b1837a4ea3635b700f 9f4eba14511679b6b25a13f2aedae4df3a6feee2 a02030ba2c52e189962667264615a5d397c26138 a0713125f7ace6d2824f5e509fe35cce089b07b9 a07406ff086df3d2df63d04334812809daa53b6a a09ab3d8a7700fec7b83389c06088c91748be41c a0ae0ad68d9d901cdf75581093ccf091ea24dcf3 a0e0c026f2a73de7df30848deab757dadf7539d1 a11475a06476cdb335d6a4f68020a7cb5fd3c732 a170873904e368c75b2bb45fa6c99dce2d81136c a19dac7dbdfd5b1628917159bb0333d0b4248b01 a1a77f543bd73cc2a3d53fece451692cbbd665e0 a1caf95d8eb63fe124c9238c215c6f1a9d7c506d a1f7714ed8ee129ff9196087b971929ff9cdd07d a2c44a4d38a147f05fb3705e5a163159df161994 a2f926179d8aa42327b394857ee65f1813b77ed6 a3b99fa358735107a850939f2ca6efc54b861100 a3f167647e4406d59ebf92e99172ae25d3a27240 a41aff775c3816e2edeca892bca1f60dfcc53e1f a45685120e77fd5bd14f808c21de5f0d7b9f59de a4e52e503b6edc041739f3e68addff5bdf047b6b a52823c2ed57e18f81da316e5bcac8bd2754ce96 a580dc48670c1fa937880a119044c68e5292686a a5e1764311f9cefac840d655421dd657cd230c42 a68ce588ca3280f448ac4c0ec3f7695bdf7a99e9 a6e2eb6f1e138c7da99b2f2b8b90ceee71f19590 a706447dc85c9d39c5894c652fe728a48b945118 a8145d2afbe65683bffae951ad21b1a508bad887 a830915240b76b1da7286b938f5178b244d29b29 a85a1a11f0a55266e9d3da10dd44cd020eb6770e a8802b19309463eced4835bdee19dde9326b4fb1 a93282167f20443c8aefd8ba1ec5acabef6a9745 a9349ee0d1a1056265aa478e1b8162f0e9823921 a9535d6a53bc660bdc3f2540251e6289b8c75bfd a95ab29a85dd9d8dd4b8915af56a184b2da8a66f aa06bb847e57b590229d854f60e7965881c39bc9 aa7d495e7f62658fe8be9ebe0cfec9e26bf4c07e aaf683c5dedb818429a6c748e33572cd9919ba1c abbe647f316b4be25d3d4255254bae3b0e3eef1a abeeca6a1481027e238057b9f7138b1f5387f242 ac373687e24203f13e7bcf2b994316037d05f5a1 adba3541c99ad8d47b04ee38e15783f853658bbb ae08fe80b63f1befd67db9a7880f4c76b34300c9 ae0cdd92bc54930049e37c6fe795b85993966f61 ae0e1d60ac2c1ffee8e56e3ce69403bf918ea895 ae65325732fba6233c6faf9214539fe493ce3210 aeb320aaf4227a9c2aebbfdee9dfd7bd5c083848 aed583c551ceeda1556ed079664c4d1ef33858e0 af03d645e2ce58455848037f78dc79d962ec95d2 afb145cf150c6345686e30b2565e282c0f7c696f b0142e15f0399ba9d029677dc128e918b3c381c0 b0b1a58ed86926fdd2a0c584a85834d1cc9d2e0c b18c91615015ada1f4b45975f9b70b5a0d099bf8 b1c2f3f7edeaca4fb5cab105a7e75fe3dab8e532 b1cb0ddc4c9279c19366ae24f9c059eb54e3fe31 b2006c3a4e3e041451e62ee6ab344ac3aeaa800f b218c32d0db89838040a81d6e33219477341f6c7 b21bd80e857f993f0385fef27d7636533af87db0 b2546cae6e588d38618eacc557dd0385812197cf b26914599f6d9ba16b43975394e1eeb9d82f4bab b2757f4acb9bb20f782ec2d59ccad4405abb4a41 b2c5eb922b7654f2b255b32ffdb96c7538567558 b2f52ccdef3b56c8695baf0ddda300938eab81ad b369a53308605593bfdb343e867ba8e6655f1fe2 b374df87a70770cdb53534a2ac210d2221649780 b42376db2f3421b282eaa7a344545193b1e41a92 b4380bc57e44971c65e21229bcad27c580e71d79 b4a89ff56c2127d2f677a8a50df8d0e552dea427 b4da4913b5a359be92987efa417537406de5a336 b4dbb0b30caa1d0f21b7b4185ba061556cada67a b51737bd5018a4ff3020b5fc9c123f5b117c5947 b54e5e8cf4157d89de6d7ac03bfb555819a14f23 b550acc32dcc2b1726425312c5bfe19805047b39 b55e68c29f639c2e9fbe951f32585e0ac8048a45 b58b9ee349cc63d5c92f6b1c834cdd75cc0392ab b5ae5dd4cd8ed6d46d5c903021436548aa36bd0b b669f5001e1c185d1fce08d43d77fe40eded8b18 b6901adad3af22019bf4a7b862a585275cf247f3 b6d159940a3525d560d1aa0581293960c0766dc2 b714027cc5853aad33e8100f259a373a26865bd3 b73302fbe890fd365898f2fbc3aacba986fbea4b b769f60d8499d23acab612b72eae2b7b984b09cf b7d04633bbe34af099d9128da576c0d488ebaa2a b80beae478db02c0f4d67230da706f6d141c0407 b831c303c1abd40fd8b242f902b6d900bca585af b86b2253d96800af0e77766412d677265b8467a9 b896a2a793aa802db868a7a0fdb29204bde99065 b919e4ce1450e3554842e5f9108fe1cd837f0f27 b9432300de5aa9b5582a1d4603e541819d4991ce b9a16757b1ee48f2de3198b259d6236e28af6d62 b9b5302a4c0a7261036a2d611d92aea3ae4d6a27 ba1ee5b98773ff9e8c16fec1ded93b5295a5f487 baab06e9d06dff4033836845b87c069d18353a85 bab348bd479eaabc55fd014e7ebed585b890d569 bab518dcd363ffabaa102e752d4bf954f8215f72 bad2fcc7737d8e2c26bb53f6e143f465484d3920 bb5bd44c66d7c376dd4a350bcf598af29af74fdc bb5eb71d81285e23bcf69f0e7a72af02eb356587 bb92225a7f19430eac540651807e1bee4424a233 bbf1e71834f60885aacf4d9f187242f7dd990437 bc2a3df3d4c2d4ba07255315f36b20784b3ae2de bc6c9049fa1d4dc56d50c2c9b8a945c6b09bec2b bc94f67c5bd77ad1778a2d5e0ce4c034e7b9c4ed bd4047f64bdaee620cc69bd75c89928c3dfda9e5 bd8142625065f4677e0c23d3bc5cc9a5ae37c5af bd89d9721a633cd8200d516de07b6a1b597dd898 bd9bc0a2092c040bfe6ba12f8aafac24e83b312a bda24ccbf03b623c166f47381ff8dc1f015becfb bdaef0e39a4be1fddc32bf6766b4ec4a4e1df725 bdcef16974e095e2dc0917453a8b2ee070817c05 be63acc637a1ed99c105d40b89938403352ac27c bf1c60d6a1cf67238b231535b6b9a4f903ecd408 c019d44e14694078f097933f3766c5d997a07d43 c048bff2a8b698e9357b50885365c417bf670213 c06e91e200bba426fb905eaa4d5efa43495d39e6 c1023eac917a0a67930add5bf24fbfc7bb9eb5f2 c138892cffe41574f10daf3e50662b9b87c45b78 c1729fc6f537c4e98cb041b1df671de29d808913 c181389800b241b9e1fb188a27e1bef90a27d0f0 c236cb5a525430ecff488e4f496408d7cd8aac91 c281bb61343bcd987445e3a7ccf53ad7af6f5c25 c2f60ab72a28ad3da155a5c7c591aae9d5e00061 c2fb01351b51091f68c750548c6e95acc9620552 c31d7c489dc0a491882fe0b85b39b5c45049328d c38d58b8e3250841dbc5f34ae98431e7402add93 c420057010e6ee7a7f310ea43fb563cf8b84403c c48db7f3ed1858bb4fc191230e3d79d5eb178604 c547eff4fbfa40a9c01f2245644bd62e12f114f7 c55c9a0ed49b5fd4be47a865f70945690139cd8e c56575efee03d763174dd13f49b37681ec72c769 c59f0226dcdf235d7cfaba662bbdb5d31b4c3f14 c5a0dc2fd03e99e26963fcd5918c398577e50669 c63e847e346adbb24aa01d86f2272b518b20eb9c c65f39c3194566c286cd4c29e016add5a6a46675 c6af4eff151019147f188b80f153ab1f8f8f3533 c6d8196cc9905774ff0a0dd0956df2206eba14ca c703b0a9624cbb37e30e71f4dcfe9347013fcbde c70a6973225a173d7a0f74ca0ff93d07d140ed9d c70e999e91f2381a2856197df91987412d6e049e c729e2e4f5a2888583cfebcd98b3178023f58b8e c79035b2f27644be5bd748bff59297f28803fae1 c827eea7ca136decc74de46f6d98a9d0315ccb45 c89453b4f0bde9488ef373a40d8821f4bf81beae c90cd4db681cc113a5a4ccb983e36ce767e7c8f3 c90fa8e289f6d3c4772b4e9d5bafb3034ab119db c93c29d2173b811a18de34940ccc210a3064230e c94d4ade874c71673a8cfa83db0bd63cf50d58e0 c996ca27909de1c8a008007adb8d43d261f282ba c99906b2923b6939f0c708d8a96aeb365fda1e26 c9ac1504c830215a48b196aab899320e83e51374 c9e9576ae2e60f08b7d6fa324e87c206aabe48b3 c9f41cb33bf95e1f44c59ccc41011eaeb2dadfca ca0e0bebf85f1348808b0979b74868e4e675e4d8 ca64296b4333e4ad6d31a9b5b18891e60248a5a5 ca86c5b074c5768e481e069b751bf22c6d95bd48 cad4a88efef2989c5b08969bdf826f055c33b1b4 caf4c37d898a8544b0d98edb202507d8097f2e33 cb30eb64ca02035697d8187c8ead05ce4d8d772b cb7c0d32ada93bf41f44aa2b37a5c584e894e040 cbab1d8c6eb34917dc210c44430e58c283013de8 cbb49b7e29b7be130de2d517b006e7cdc8fd9244 cbc6658be86ed0a5f49e670dcdb61924eee2ba0a cbcbcb7063c7be4fa4230a7ea032cd8964ec5ebe cbfa7d5cffed462ce7ff1e5ceda1d5536b315031 cc015d2acede7ad8eb7839f747b43fd6a87e363b cc351605a6271189d565f48b2f78a3f024fa779b cc4f469cb7d85e912c634cabdca058d5edd0237d ccecede95c4a486a4a59b0bd1fcf463a3245b4e0 cd6f31d2f563bd985c004e2967c0a8728664befa cd8810491c2d5531e425ee686e61d3060bf13ed9 cd9ee63b982cd8b78437a26d9b2f832d6b642e20 ce3243f4a093f9959b5b377bcfb465c507bb7940 ce5937c4e23fbc44493a9329ff637851e0cbb1b9 ce59894c664b182ff4d1835ded5484abbdd95ff3 cee7bafc23017e9de7cc9f69a04a4e1348d29ace cf2127077d54af84e6a8d00e39666afa7494567e cfafc829d4311727bc96e142aad077b7f7d2ca53 cfd3fcdc2c11ac731d0a29e765e82bf2f3181283 cfdaa7d650bc50dd29d033ad6c924e1dce4ecd9e d011cc51b6bad11e6e1a88c399020b191ffd8790 d026e6f8d2120aef5f49f71032d0842c65f21084 d0448902209137942c85ee5c34fdc9e77b90fa3c d046fcde63af95aa4a4b4b09e871eeb3228c3560 d060216023d1f200ab0e567db9080d0512012dab d0f0c9fa52edde81962135fcf5e5b11e53ddd252 d14eb72711398d2b2337eccc4f3790fa7f534f5f d1671e9a665dfac958e3cfa8cf5c40fb4e7c9b4f d1681bd6ca44bbb37e88409bc1f7f32be5259495 d22be9e9af16662ec23e88146fd1ff658a5a7dcc d2402d8ef8ed4ba4933a76cce532c8774f589d32 d2579894743417664d10fc78f35267eb449da576 d26d3ceadd71540201e65658a307db95295dee25 d3120ebc132280d9a4db66cf58895c8f22a8c90b d347ebf6f2a3c0e514c762007c2565ce50b1052f d35c7a50e9f33f6a920b4a4140e5b37132ce3dc1 d363ebdcc60c21f4a1ba386399be4ecac077b4ab d3d056da278ff2975a96a486e4c1f70128570110 d40668b21ab42db06c14ef871db9916ff9536eb5 d45ca29a7a3bf7ad81d3b94566a8c79463112fbc d4f10c2ec705abd54fbea0a01102acf3ade0f71d d4f5c7efdda698a858bb91fcd89f6c882872fa47 d53898dec304a9c9acccc0179f0541254994b9fe d591d16d8b876cea51f8fe9417dd8cac49e69321 d5bf50dcc4349981556dd7a70b38699df5d78149 d5c44ad1d7259710a6a0a84610f321804605b81c d5ef388e09524518ba9dcddc32e638c32c12c1c0 d6d9a9d1631310c04ef2c04e0f68430b405526a4 d6fde84d77e0618496709be2037bc47d952d69ce d73bd2355a2d42a4e56384a1ed451a10833e6e39 d76749489c7cae30672beebca0dec8d2e3610055 d771612396c3e2e557e986fafd9fc2c56a99d3cd d7e9b02e68a4625a7ace5decdcaf4013a40eb1dd d81bdded0c98594fe74b3aca8038766fc765e8b1 d83fb86e76fb23d7de54d1ce215b1690e34f3aae d84cce12fbfba61bf930123050f61a11e2a29310 d8862ba8e2b0988b0cd4fc371c7d68f32e391720 d92ad878278ef862056c15044c8b62a966627e79 d9345dbbcdfbe20405a86fa08bf4e39cad0c93cd d934bca40d7812c56c53965c4083d676e6bb8276 d9646fe8eaa15e9e8f785c77324fa811e48df081 d9b9edb0c6f0026dcd4a33eebf1aaeeb04231b1d da6f98ad244984d9aa9061b7a4c5a23dfcfd9276 db2bd83bfe58ca4b01fcb1acfdd7c8d1d118b44c db2bf922c080968f358472fc60a4eaccafc215da db62fcdb99bb797d06771103f8536ff903de438e db82f437c50c454e665546477893ca944e4fdedf db9c05bd401e8034b37239c5d019ba4d101e8904 dbcb76538295fe7d231aa80ad0f677ffe0cb46c2 dbd15d19abe3f9062b14bc403a499a66aa46cf26 dc97deb45434baf99895a794192c210a22bf35df dcbfb2771db32722e0a6b037dba1a41974fb17f2 dcd3c8eccbeaac5dc0da5837f3cf220e8e21f96c dd0fc566fba09b1c787e21fac957a9132e70a0b1 dd19174c48e18d7ef8275721c4eca8d8bdff5008 dd277f9244ac8205eb2035fab99417d483e452c2 dd65bd54b10548c410dedc4839baf4f99ed4e8f8 dde939787f5816414aa5d3433912063fe46271cf de1f940ef441edffc5961ef95ea9e8507667ef6b de53ffe7e3c71c9ed5c845fa50e0521efa5f3685 defb1317debff80bbec8fcdb53132edf3988ba93 df6e6948474071301e5af126ccf82436227de48c df9f77aab0ec4c21ecb2cd5c3067cf7581cab4d6 dfc2a0c43f11b9d427cb3c26f5c0f39441fa1ae7 e0842697e2c12ca915788d2ffb7045422a044125 e094e2190d1aea639e1eef527c331eb7deac00d1 e09dea59a391d576302ef75254953950a1e456f7 e0c5dd4e9a08f83af8595969137acbc07ab89bc7 e11207e4d38391623e8a73461dea4612b6d348c2 e1352ccfe753212cba20c9abc430fd81a34101da e16fac100910e989377afb090ec954958c6520f8 e28b88af1d39d48658860e9a82f45597643fcbf4 e2b3696ea54ea6aa3ea1e5fe204baceddf681888 e420c49f692c1dec36838862d2401bb62a0e56d8 e43054fb17913b298a6ebd7990531bf0116d4f3a e45eaf9f986d8b950f244b5c0183ca30e9a478b8 e5bf16ee2fedcd7602e3611d8a471fe638e7c5de e63ae21331776a09dae9e2c0d89121b9158d6ef3 e6586e8c7ff3f3888c39cf0c73460df54dc0d951 e6d6f20d438117125ab2710caf24bbb40b45048b e6da08a7a45bef7bcd5c74a4f13243dcf55d4d92 e7a1ec11c8b1f30a96b138b3ac0af77557a19940 e7d51de6377af781855f5aaddd4772f6182b8d1d e7e37f64d13e4485149cb9174d834a88a98e6f1c e820eeee2a2be84fd84e9ef09e6f7f3e1e9da5c1 e829f87e488259792196ca04baa24dd26e5ba8bc e842590129de4642a47110ed7701864f33b18337 e85375d18b255f0b61986993c1c829203d470026 e85bfadc24ead00bb0d80a56a2b24f5baee7da4a e89feb765372e0707043c6298ec8bdf70d04ed87 e8af39b7dfe78bd5413b4af4a667d052e8cbaa77 e8fcb3126ba7ecaeb730b1175968e9f24d0ebcfa e95694a0427c449c60cc5a66d0b83e3a2c7616b1 e95b2b7db211a0b001ef5ef18ffbd08cbc4f4e09 e9b24f94c0007acb4b7169b945622efcd332cf6f ea4208f40a36b18be923fcd5adb59b250d9cef96 ea950fdfe174caa330ad082bc5099fda7bc8a236 eaf4bbde9fea8eaeda6ff9f0af06afd79f0adc01 eaf9174e872315c3630f8cfbf81d08cf582da8d4 eb138e98644258494f8709d807c4c1ee2998eef4 eb5a1eee1abef853de4844a4ffb945c5f0a55523 eb6778872fda716b31c1316e3e4f099c22ea822d ebf9ded75b34b20ce698b5dff3e65582eea1a659 ed8e8d2a28a421a676fcc831df3d54f5bdd73f4b ed912805f0a8c14f9d344941eb895bb718bf5d4b ed954270466a55931158bcd87e4a7e667a2afbfd ed996cbd1eb9d4b63427f2a395b3afee91f682a4 ee38886d0f4958ba0dd7197b072d2182c5259a87 ee73bc35e856c6ab464b1168ef6be48bc5d49ead ef018fe92940aff5b1024ea2d5d217586b8b0657 ef8edb79e602536229e73a67abad10d72382ce19 efd6b1c9868a0311dc3ea91421c735baf013acd2 f0386c68fadad2c008c746e2acfaf6bdb7bc0fd9 f0618f7ff7aa176c0962b67dc6c31e20324b227c f06d8a77df90309662c6a62b4c92bf0f624f9580 f06f238633347196b8fe23eb225bad350cf43322 f093bfb36cfeedd2a91a349afe66f91cb4898fb1 f0eb8e099777a084f99eabefe449833b2bd25876 f1bd91a2f6751faf2e12d4148bda5a419188fb90 f1e0ab0bc52bb1cfe62442b8ef9971336c1eab5c f1f56ac7fe18e856e95df678e91356532369bd92 f27b6603820d90e9b0ee05949273d6059e6b5170 f2e910cbcef80943c7283e39adca7b974055e82c f2eb513d4c87747d0e4bc8c3bbf12951b3819678 f30f20de559f927e13c611e63bed14b1e22153fe f3512ab824a4f1a7399c5c04cc0142f0ec0b9df2 f3e26cef2e2eefbcca02f9ca07bca97d900b0d3d f41aaeaf44808e7a7665a27f68df03db8ac77708 f4668f6fc8626fd484b7e08101fff4226606c73b f46a7df23ae1089bf5ac45eca51c05b423ee912c f4ce227d1b64d7a4877cb1f3425b664221f6006c f5989b9cbcf767a6ed0a81b898d56711af71b43a f60f548cd3ba0a5b7657a31091690524a7171be3 f64c13fd10a07bca1bf2b7bd7a80630632ce62c9 f65804069553e141a96eae17f475584617a5324b f67bdd42a2c664b7283db103b49a2e5d95f53823 f682f580924ab4b3f3da7a222c7a5cb7ff707404 f6bfa422f42d23306464340afa1215a74eae8f6d f6d3e531f5c08830bcd666c11a2926e24bd47bc1 f7086e32e70d1bd474debe5553053dbb7a0c09b9 f74f03f0a98f2ab70558421579e38b20744db160 f77895a3af02145a2b5cbbbd1596446a6dcea3b0 f79914f6e6857983f2ff1aae5726102534ba9000 f8192e82fcb81f5095886517ea7155c0b78f6e38 f896736dc2581cbbedfc486c6b1a7e98d9bdde7f f8a80be7fc2a0a4aaa438b6366abfada7b566cd6 f912a7dfa6d1797d774fff0b9f4e4f5cbed4a981 f962c52f40b06bee79d1f37a996fdd7cc5b81e1d f9c28549a90c103c64a6ac83d8e3714b7f3e521a fa236a79405a5a4954301d05e708c6d0fa36d741 fa7b75889de09bd19ffc91c2e7e263e264c4737a fadd8651e9da3c6eaf9d130ba80c45999e69decf fb1ebbb8a61b4299bd83248e745335974fdfff59 fb61c720398cb95914f05f1abe37f51eee51279f fc08b98693eaf49070af0be567348e447ec8be9e fc1782881eb28f50538fabd8215708d30e73d2e6 fc220d338e3959a9f25a2dbeae7b69d6fed647b3 fc230ca97bc6bd2969b2194cc896000e972d5542 fc3d2bcb5b4c430d360981e81d5dd3afb486887c fc77794b1f306779e6d47c93b26bca7b229a6da9 fcbdccdf5f7afc88a18b7d824c952d7e1335612f fd179c5e4fd5e33493ae290adbbda2950ecf0427 fd1a502adb446e835797a88fad8e79d1e0bf4b4a fd977a3af7be241a9ed0213acb3aa75e5dc00253 fdb1ad87bd6fb08014267f2586faeed0edc7412b fdc189e5a19850397f37201f4acc378cfddcf0d6 fdc19f011587b75c11a6c30d8ca06d90107b6bde fdf37fa13679f581bdfaae3b99e368633e0a144b fdfe926caf5f49a88a9bcab8d025e887f422128b fe3211f90e4ab1f500e10fe175ae6142f4b13130 ffa41c79865d7fb336f586e0dec8b080db1027fb x y f path
*/
4 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -64 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -64 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -82 -88 -999 -999 -999 -82 -999 -999 -999 -999 -999 -999 -999 -999 -999 -64 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -74 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -59 -82 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -63 -999 -999 -999 -999 -999 -73 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -64 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -86 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -64 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -62 -999 -999 -999 -999 -999 -999 -53 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -64 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -82 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -82 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -59 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -74 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -56 -999 -999 -82 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -82 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -74 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -82 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -73 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -74 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 178.33347 171.01176 -1 5e1581d4f4c3420006d52109
4 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -57 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -57 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -85 -88 -999 -999 -999 -84 -999 -999 -999 -999 -999 -999 -999 -999 -999 -57 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -74 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -59 -76 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -74 -999 -999 -999 -999 -999 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -57 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -86 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -57 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -71 -999 -999 -999 -999 -999 -999 -51 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -57 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -82 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -82 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -75 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -49 -999 -999 -85 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -82 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -74 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -84 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -74 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -74 -999 -999 -999 -85 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 178.33347 171.01176 -1 5e1581d4f4c3420006d52109
4 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -57 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -59 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -80 -88 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -59 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -75 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -55 -78 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -76 -999 -999 -999 -999 -999 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -59 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -86 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -59 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -66 -999 -999 -999 -999 -999 -999 -52 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -59 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -82 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -82 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -65 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -76 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -53 -999 -999 -79 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -82 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -75 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -75 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -75 -999 -999 -999 -79 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 183.30205 170.70773 -1 5e1581d4f4c3420006d52109
4 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -57 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -62 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -80 -88 -999 -999 -999 -80 -999 -999 -999 -999 -999 -999 -999 -999 -999 -63 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -75 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -52 -77 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -76 -999 -999 -999 -999 -999 -85 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -62 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -86 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -62 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -73 -999 -999 -999 -999 -999 -999 -53 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -62 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -82 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -82 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -60 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -76 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -80 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -82 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -75 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -76 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -76 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 183.30205 170.70773 -1 5e1581d4f4c3420006d52109
4 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -57 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -63 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -82 -88 -999 -999 -999 -82 -999 -999 -999 -999 -999 -999 -999 -999 -999 -62 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -70 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -38 -73 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -71 -999 -999 -999 -999 -999 -83 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -63 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -62 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -73 -999 -999 -999 -999 -999 -999 -54 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -63 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -86 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -66 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -70 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -49 -999 -999 -83 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -85 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -71 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -82 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -71 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -70 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 183.30205 170.70773 -1 5e1581d4f4c3420006d52109
4 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -57 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -60 -999 -999 -999 -999 -999 -999 -90 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -77 -88 -999 -999 -999 -77 -999 -999 -999 -999 -999 -999 -999 -999 -999 -60 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -61 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -49 -78 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -61 -999 -999 -999 -999 -999 -80 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -60 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -60 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -67 -999 -999 -999 -999 -999 -999 -45 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -60 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -82 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -64 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -90 -999 -61 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -52 -999 -999 -77 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -80 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -61 -90 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -78 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -61 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -61 -999 -999 -999 -86 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 183.30205 170.70773 -1 5e1581d4f4c3420006d52109
4 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -57 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -999 -90 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -76 -88 -999 -999 -999 -77 -999 -999 -999 -999 -999 -999 -999 -999 -999 -59 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -45 -79 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -80 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -80 -999 -999 -999 -999 -999 -999 -54 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -83 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -59 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -90 -999 -58 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -49 -999 -999 -77 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -82 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -77 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -77 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 183.30205 170.70773 -1 5e1581d4f4c3420006d52109
4 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -63 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -62 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -75 -88 -999 -999 -999 -75 -999 -999 -999 -999 -999 -999 -999 -999 -999 -62 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -62 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -47 -79 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -80 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -62 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -62 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -80 -999 -999 -999 -999 -999 -999 -49 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -64 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -61 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 -61 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -49 -999 -999 -75 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -84 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -61 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -75 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -85 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -60 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -61 -999 -999 -999 -74 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 177.93846 166.63974 -1 5e1581d4f4c3420006d52109
4 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -62 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -61 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -74 -88 -999 -999 -999 -76 -999 -999 -999 -999 -999 -999 -999 -999 -999 -61 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -66 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -55 -79 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -78 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -61 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -61 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -80 -999 -999 -999 -999 -999 -999 -45 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -62 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -80 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -90 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -66 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -45 -999 -999 -74 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -77 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -66 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -73 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -85 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -77 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -66 -999 -999 -999 -74 -999 -999 -999 -86 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 177.93846 166.63974 -1 5e1581d4f4c3420006d52109
4 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -61 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -61 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -88 -999 -999 -999 -80 -999 -999 -999 -999 -999 -999 -999 -999 -999 -61 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -70 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -79 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -82 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -61 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -61 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -68 -999 -999 -999 -999 -999 -999 -43 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -60 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -80 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -57 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -90 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -73 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -49 -999 -999 -80 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -77 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -69 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -80 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -85 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -69 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -69 -999 -999 -999 -80 -999 -999 -999 -86 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 177.93846 166.63974 -1 5e1581d4f4c3420006d52109
4 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -57 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -57 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -80 -88 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -56 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -72 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -56 -79 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -57 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -57 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -68 -999 -999 -999 -999 -999 -999 -38 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -57 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -51 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -90 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -72 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -44 -999 -999 -80 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -77 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -72 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -80 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -85 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -74 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -73 -999 -999 -999 -81 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 177.93846 166.63974 -1 5e1581d4f4c3420006d52109
4 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -63 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -62 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -82 -88 -999 -999 -999 -82 -999 -999 -999 -999 -999 -999 -999 -999 -999 -63 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -74 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -52 -79 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -83 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -62 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -62 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -74 -999 -999 -999 -999 -999 -999 -39 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -62 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -54 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -90 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -74 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -41 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -75 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -83 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -85 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -74 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -75 -999 -999 -999 -81 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 177.93846 166.63974 -1 5e1581d4f4c3420006d52109
4 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -63 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -55 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -80 -88 -999 -999 -999 -79 -999 -999 -999 -999 -999 -999 -999 -999 -999 -55 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -73 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -50 -78 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -74 -999 -999 -999 -999 -999 -79 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -54 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -55 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -74 -999 -999 -999 -999 -999 -999 -34 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -55 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -60 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -90 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -73 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -55 -999 -999 -80 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -74 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -85 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -73 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -73 -999 -999 -999 -80 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 177.93846 166.63974 -1 5e1581d4f4c3420006d52109
4 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -63 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -59 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -80 -88 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -59 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -64 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -57 -77 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -65 -999 -999 -999 -999 -999 -82 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -59 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -59 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -74 -999 -999 -999 -999 -999 -999 -46 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -59 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -86 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -53 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -90 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -65 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -48 -999 -999 -80 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -65 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -85 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -65 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -65 -999 -999 -999 -80 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 181.98328 161.74864 -1 5e1581d4f4c3420006d52109
4 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -59 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -73 -88 -999 -999 -999 -73 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -71 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -52 -76 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -66 -999 -999 -999 -999 -999 -75 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -74 -999 -999 -999 -999 -999 -999 -42 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -86 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -56 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -70 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -40 -999 -999 -73 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -72 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -73 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -85 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -70 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -70 -999 -999 -999 -73 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 181.98328 161.74864 -1 5e1581d4f4c3420006d52109
4 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -57 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -73 -88 -999 -999 -999 -73 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -67 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -61 -74 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -66 -999 -999 -999 -999 -999 -80 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -74 -999 -999 -999 -999 -999 -999 -46 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -86 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -57 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -66 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -37 -999 -999 -74 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -67 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -73 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -85 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -67 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -67 -999 -999 -999 -74 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 181.98328 161.74864 -1 5e1581d4f4c3420006d52109
4 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -63 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -77 -88 -999 -999 -999 -76 -999 -999 -999 -999 -999 -999 -999 -999 -999 -63 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -66 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -75 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -66 -999 -999 -999 -999 -999 -78 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -63 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -81 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -63 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -74 -999 -999 -999 -999 -999 -999 -51 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -63 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -80 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -80 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -58 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -88 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 -65 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -42 -999 -999 -76 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -80 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -66 -87 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -77 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -85 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -66 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -80 -999 -999 -999 -999 -999 -999 -999 -999 -66 -999 -999 -999 -75 -999 -999 -999 -89 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -89 -999 181.98328 161.74864 -1 5e1581d4f4c3420006d52109
这里每一行代表的是每个手机用户连接各个Wifi接入点的信号强度以及该手机用户个人的位置。