├── .gitattributes ├── .gitignore ├── README.md ├── area_distance.py ├── area_fun_num.py ├── data ├── SE │ └── se_pm25.csv ├── graph │ └── pm25 │ │ ├── areaparacorr_92_air.csv │ │ ├── dist.npy │ │ ├── func.npy │ │ ├── neigh.npy │ │ ├── pm25_distri_kl.npy │ │ ├── pm25_distri_ws.npy │ │ └── tempp_pm25.npy └── temporal_data │ └── pm25 │ ├── test.npz │ ├── train.npz │ └── val.npz ├── datasets └── air.py ├── figures ├── X2_ASTGCN.png ├── X2_GWNet.png ├── X2_MSTGCN.png ├── X2_STGCN.png ├── X2_STMGCN.png ├── X7_12_parking.png ├── X7_24_parking.png ├── framework.png ├── graph_attention.png ├── map.png └── spatial_attention.png ├── gen_distri_graph.py ├── generate_training_data.py ├── models ├── MSTGCN.py └── fusiongraph.py ├── requirements.txt ├── time_distribution.py ├── train.py └── util.py /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | 113 | # Spyder project settings 114 | .spyderproject 115 | .spyproject 116 | 117 | # Rope project settings 118 | .ropeproject 119 | 120 | # mkdocs documentation 121 | /site 122 | 123 | # mypy 124 | .mypy_cache/ 125 | .dmypy.json 126 | dmypy.json 127 | 128 | # Pyre type checker 129 | .pyre/ 130 | 131 | .idea/ 132 | wandb/ 133 | .DS_Store 134 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Long-term Spatio-Temporal Forecasting via Dynamic Multiple-Graph Attention 2 | 3 | ## Introduction 4 | 5 | We propose a new dynamic multi-graph fusion module to characterize the correlations of nodes within a graph and the nodes across graphs via the spatial attention and graph attention mechanisms. Furthermore, we introduce a trainable weight tensor to indicate the importance of each node in different graphs. We can increase the performance of plenty of STGCNN models including [STGCN](https://www.ijcai.org/Proceedings/2018/0505), [ASTGCN](https://ojs.aaai.org/index.php/AAAI/article/view/3881), [MSTGCN](https://ojs.aaai.org/index.php/AAAI/article/view/3881), [ST-MGCN](https://ojs.aaai.org/index.php/AAAI/article/view/4247), and [Graph WaveNet](https://www.ijcai.org/Proceedings/2019/0264). 6 | 7 | ## Framework 8 | ![](https://github.com/swsamleo/HMSTGCN/blob/main/figures/framework.png) 9 | 10 | ## Datasets 11 | ### Histocical Records 12 | - [Air Quality](https://english.mee.gov.cn/) The Ministry of Ecology and Environment of China (MEE) published a large-scale air quality dataset, comprising 92 air quality monitoring stations, to assess the hourly PM2.5 concentration in Jiangsu province in 2020. 13 | 14 | ### Weight Matrix 15 | There are five weight matrices: 16 | - Distance Graph: 17 | - Neighbor Graph: 18 | - Functionality graph: 19 | - Heuristic Graph: 20 | - Temporal Pattern Similarity Graph: 21 | 22 | ### Multi-graph Spatial Embedding 23 | The multi-graph spatial embedding is generated using [node2vec](https://github.com/aditya-grover/node2vec). 24 | 25 | 26 | The historical records are stored in 'data\temporal_data', the weight matrix data is stores in 'data\graph', and the multi-graph spatial embedding data is stores in 'data\SE'. 27 | 28 | ## Requirements 29 | 30 | Our code is based on Python3 (>= 3.6). The major libraries are listed as follows: 31 | - torch >= 1.8.1 32 | - numpy >= 1.15 33 | - scipy >= 1.1.0 34 | - torch-cluster >= 1.5.9 35 | - torch-geometric >= 1.7.2 36 | - torch-scatter >= 2.0.6 37 | - torch-sparse >= 0.6.9 38 | - torch-spline-conv >= 1.2.1 39 | - pytorch-lightning >= 1.2.8 40 | - wandb >= 0.11.1 41 | 42 | The following command can help install the above libraries: 43 | ```powershell 44 | pip install -r requirements.txt 45 | ``` 46 | 47 | ## Usage 48 | 1. Generate training data 49 | The time steps of historical observations and prediction horizons are both set to 24. The train, validation, and test part are divided into 7:1:2. Run the following command to generate training data: 50 | ```powershell 51 | python generate_training_data.py 52 | ``` 53 | 2. Parameters 54 | - graphs: distance graph, neighbor graph, functionality graph, heuristic graph, temporal pattern similarity graph 55 | - model: ASTGCN 56 | - length of histotical observations: 24 57 | - length of prediction horizons: 24 58 | - epoches: 40 59 | - batch size: 32 60 | - learning rate: 1e-4 61 | - weight decay: 1e-4 62 | - number of attention heads: 8 63 | - dimension of each attention outputs: 8 64 | 65 | 3. Train the model 66 | Run the following command to train model: 67 | ```powershell 68 | python train.py 69 | ``` 70 | 71 | ## Citation 72 | Please refer to our paper. Wei Shao*, Zhiling Jin*, Shuo Wang, et al, Flora Salim, Long-term Spatio-Temporal Forecasting via Dynamic Multiple-Graph Attention. [Long-term Spatio-Temporal Forecasting via Dynamic Multiple-Graph Attention](https://arxiv.org/abs/2204.11008?msclkid=3c019a95d0d611ec98d3ad7108897858). In Proceedings of the 31st International Joint Conference on Artificial Intelligence and the 25th European Conference on Artificial Intelligence (IJCAI-ECAI 2022), 2022. 73 | 74 | ``` 75 | @inproceedings{shao2022long, 76 | title={Long-term Spatio-Temporal Forecasting via Dynamic Multiple-Graph Attention}, 77 | author={Shao, Wei and Jin, Zhiling and Wang, Shuo and Kang, Yufan and Xiao, Xiao and Menouar, Hamid and Zhang, Zhaofeng and Zhang, Junshan and Salim, Flora}, 78 | booktitle={31st International Joint Conference on Artificial Intelligence, IJCAI 2022}, 79 | pages={2225--2232}, 80 | year={2022}, 81 | organization={International Joint Conferences on Artificial Intelligence} 82 | } 83 | ``` 84 | -------------------------------------------------------------------------------- /area_distance.py: -------------------------------------------------------------------------------- 1 | import math 2 | import pandas as pd 3 | import numpy as np 4 | import re 5 | 6 | # def distance_of_stations(point1, point2): 7 | # long1, lat1 = point1 8 | # long2, lat2 = point2 9 | # delta_long = math.radians(long2 - long1) 10 | # delta_lat = math.radians(lat2 - lat1) 11 | # s = 2 * math.asin(math.sqrt(math.pow(math.sin(delta_lat / 2), 2) + math.cos(math.radians(lat1)) * math.cos(math.radians(lat2)) * math.pow(math.sin(delta_long / 2), 2))) 12 | # s = s * 6378.2 13 | # return s 14 | def distance_of_stations(long1, lat1, long2, lat2): 15 | delta_long = math.radians(long2 - long1) 16 | delta_lat = math.radians(lat2 - lat1) 17 | s = 2 * math.asin(math.sqrt(math.pow(math.sin(delta_lat / 2), 2) + math.cos(math.radians(lat1)) * math.cos(math.radians(lat2)) * math.pow(math.sin(delta_long / 2), 2))) 18 | s = s * 6378.2 * 1000 19 | return s # 单位米 20 | 21 | df= pd.read_csv('processed_data\\map\\small_areas2center.csv',encoding="utf-8", low_memory=False) 22 | # df = df.iloc[0:,:] 23 | print(df.head(5)) 24 | 25 | 26 | segnums = pd.read_csv('processed_data\\map\\small_areas2center.csv',encoding="utf-8", low_memory=False) 27 | segnums.sort_values(by=['Smallarea'], inplace=True) 28 | 29 | areanums = pd.read_csv('processed_data\\map\\areanum_valid.csv',encoding="utf-8", low_memory=False) 30 | areanums_list = areanums['Smallareas'].values 31 | print(areanums_list) 32 | 33 | segnums = segnums[segnums['Smallarea'].isin(areanums_list)] 34 | segnums.reset_index(inplace=True) 35 | 36 | Lons = segnums['Lon'] 37 | Lats = segnums['Lat'] 38 | 39 | 40 | 41 | # sampled_seg2geo = [] # 选取的路段坐标列表 42 | 43 | # for i in range(len(df)): 44 | # if df['Areaname'][i] in segnums_list: 45 | # sampled_seg2geo.append(df['Loc'][i]) 46 | 47 | 48 | 49 | # seg_num = len(sampled_seg2geo) # 路段数量 50 | # locs = sampled_seg2geo 51 | # # locs = df1['Loc'] 52 | 53 | distance_matrix = np.zeros((len(Lons),len(Lons))) 54 | # # neighbour_matrix = np.array([[0,0,1,0,1,0,1,1,0,0,0,0,1], [0,0,0,0,1,0,0,0,1,0,1,1,1], [1,0,0,0,1,1,0,0,0,0,0,0,0], \ 55 | # # [0,0,0,0,0,0,1,0,0,0,0,1,0], [1,1,1,0,0,1,1,0,0,0,1,0,1], [0,0,1,0,1,0,0,0,0,1,1,0,0],\ 56 | # # [1,0,0,1,1,0,0,1,0,0,0,1,1], [1,0,0,0,0,0,1,0,0,0,0,0,0], [0,1,0,0,0,0,0,0,0,0,0,1,0],\ 57 | # # [0,0,0,0,0,1,0,0,0,0,0,0,0],[0,1,0,0,1,1,0,0,0,0,0,0,0],[0,1,0,1,0,0,1,0,1,0,0,0,1],\ 58 | # # [0,1,0,0,1,0,1,0,0,0,0,1,0]]) 59 | # # print(neighbour_matrix) 60 | # disrelation_matrix = np.zeros((seg_num,seg_num)) #距离关系矩阵 61 | for i in range(len(Lons)): 62 | # p1 = locs[i] 63 | # lon1=float(re.findall(r"\((.+?),",p1)[0]) 64 | # lat1=float(re.findall(r", (.+?)\)",p1)[0]) 65 | lon1 = Lons[i] 66 | lat1 = Lats[i] 67 | for j in range(len(Lons)): 68 | # p2 = locs[j] 69 | # lon2=float(re.findall(r"\((.+?),",p2)[0]) 70 | # lat2=float(re.findall(r", (.+?)\)",p2)[0]) 71 | lon2 = Lons[j] 72 | lat2 = Lats[j] 73 | distance_matrix[i][j] = distance_of_stations(lon1, lat1, lon2, lat2) 74 | 75 | # for i in range(len(Lons)): 76 | # for j in range(len(Lons)): 77 | # if(i != j ): 78 | # # if neighbour_matrix[i][j] != 1:# 不相邻 79 | # #disrelation_matrix[i][j] = 1/distance_matrix[i][j] 80 | # #print(disrelation_matrix) 81 | 82 | # df2 = pd.DataFrame(neighbour_matrix) 83 | # df2.to_csv('processed_data\map\W1_area_test.csv',index = 0,header=None) 84 | df3 = pd.DataFrame(distance_matrix) 85 | df3.to_csv('processed_data\map\D1_area_test.csv',index = 0,header=None) 86 | # df4 = pd.DataFrame(disrelation_matrix) 87 | # df4.to_csv('processed_data\map\W2_area_test.csv',index = 0,header=None) 88 | 89 | 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /area_fun_num.py: -------------------------------------------------------------------------------- 1 | # 用来确定不同area对应功能的数量 2 | 3 | import pandas as pd 4 | from collections import Counter 5 | import random 6 | 7 | df = pd.read_csv('datasets\map\Business_establishment_trading_name_and_industry_classification_2019.csv', encoding="utf-8", low_memory=False) 8 | df2019 = df[df['Census year'] == 2019] # 仅选取2019年部分 9 | print(df2019) 10 | Areas = list(df['CLUE small area'].drop_duplicates(keep="first")) 11 | Areas2fun_num = {} # 区域对应功能数量字典 12 | for area in Areas: 13 | area_fun_df = df2019[df2019['CLUE small area'] == area] # 区域对应所有功能dataframe 14 | area_fun_df.sort_values(by=['Industry (ANZSIC4) code'],inplace=True) 15 | area_fun_list = list(area_fun_df['Industry (ANZSIC4) code']) # 区域对应所有功能列表 16 | areafunnum = dict(Counter(area_fun_list)) 17 | Areas2fun_num[area] = areafunnum 18 | df3 = pd.DataFrame.from_dict(Areas2fun_num, orient='index') 19 | df3.fillna(0, inplace=True) # 用0填充空值 20 | df4 = df3.T # 转置 21 | df4.sort_index(axis=1,inplace=True) 22 | print(df4) 23 | print(df4.corr()) 24 | df4.to_csv('processed_data\\map\\area2funnum.csv') 25 | df4.corr().to_csv('processed_data\\map\\areafuncorr.csv') 26 | # segid = list(df['SegID']) 27 | # markernum = dict(Counter(segid)) 28 | # df3 = pd.DataFrame.from_dict(markernum, orient='index') 29 | # df3.to_csv('processed_data\map\segnum.csv') -------------------------------------------------------------------------------- /data/SE/se_pm25.csv: -------------------------------------------------------------------------------- 1 | -0.11192503,0.2130607,-0.044539437,-0.21526986,0.15126128,0.36176834,-0.21094255,-0.052830573,-0.20519407,-0.038592633,-0.09617908,0.21503262,0.29238257,-0.07303222,0.12803671,-0.12111167,0.13997088,-0.21037284,-0.20155814,-0.064378045,0.338088,0.07775686,-0.049364984,0.13783833,0.017272608,-0.120488025,0.047477048,-0.09563439,0.22098611,-0.10663984,-0.07091841,0.22809577,-0.043490462,0.056368813,-0.054875042,0.3844756,0.3497968,-0.15647925,-0.4539951,0.45967144,-0.091643654,0.15763713,0.31815282,-0.3242507,-0.07795734,0.3900367,0.35367048,0.16786301,0.03131049,-0.062652305,0.123979,0.250693,0.1099806,0.39980733,0.21920593,-0.3287411,-0.07046757,0.030642731,-0.112792864,0.028920026,0.32585368,0.21651347,-0.119268335,0.119652934,0.1098596,-0.15619497,-0.3747471,0.005137307,-0.080032654,0.3525525,0.2202204,-0.06836746,0.06660805,-0.03508089,-0.07034755,0.18323362,0.295508,-0.09938907,-0.26155254,0.37578127,0.10388497,-0.033910614,0.1262441,-0.029733878,0.31821924,0.24564536,0.35186902,0.3217794,0.29293373,0.2004276,0.022172095,-0.51076096,0.09872463,0.007077828,0.29121533,0.12377973,-0.12229628,-0.1238425,0.21453473,-0.002029903,-0.15294759,-0.2617619,-0.2771474,-0.36932656,-0.06875052,0.049154684,0.14943281,-0.22669306,-0.41664568,0.000460349,0.10667466,0.08757238,0.09628056,-0.12854302,-0.42571008,0.103083774,-0.14409496,0.1151648,-0.091303,-0.36417222,-0.052266557,0.14103504,-0.38443354,-0.010745928,-0.2046407,0.008880219,-0.006206927,0.1048078,0.04517348,-0.19674908,0.20324564,0.3577967,0.34259698,0.16412248,0.14449853,-0.2738379,0.12455144,-0.21414919,0.5648815,0.10242618,-0.21406686,0.2643854,0.19790459,-0.23970188 2 | -0.100157976,0.21321085,-0.040873017,-0.22831634,0.14424475,0.36584976,-0.2016812,-0.059701342,-0.20152082,-0.043081146,-0.08111098,0.22449288,0.31718808,-0.063006386,0.14816535,-0.11866524,0.12854081,-0.20484278,-0.21611834,-0.08659469,0.35341305,0.104478434,-0.057978455,0.15410306,0.013767099,-0.12062914,0.07230827,-0.110680625,0.239266,-0.12239588,-0.060131665,0.2452411,-0.034279842,0.049058024,-0.04965735,0.40373576,0.3659871,-0.15626635,-0.46317822,0.487962,-0.10058652,0.17006919,0.32955557,-0.3434046,-0.08584233,0.40192124,0.3741322,0.17849119,0.042578105,-0.06233627,0.119299226,0.2601612,0.122370094,0.41867802,0.2216531,-0.34760064,-0.075927086,0.043970607,-0.10575727,0.025000963,0.33530387,0.22570425,-0.11827144,0.12287656,0.09906684,-0.16478354,-0.38858172,-0.000238239,-0.06582699,0.37691864,0.23679966,-0.07188147,0.08085292,-0.035613716,-0.078314066,0.20813689,0.3157437,-0.101112396,-0.2923106,0.39073247,0.08085769,-0.03627787,0.1511926,-0.05337336,0.33098185,0.22004381,0.3720703,0.33261895,0.30372244,0.20383553,0.013820032,-0.5313559,0.0930913,0.018483277,0.28433794,0.123022944,-0.10436787,-0.13100402,0.21264769,0.011380203,-0.15631907,-0.26851663,-0.27821633,-0.3692265,-0.087335244,0.039447553,0.16776201,-0.2274057,-0.4412118,0.000709733,0.12026679,0.08241494,0.09394241,-0.1526621,-0.4293673,0.12949404,-0.13919748,0.13700852,-0.08406837,-0.36557502,-0.061203238,0.16583516,-0.38593793,-0.01674572,-0.20202425,0.01900662,-0.018856902,0.081013925,0.03489938,-0.22071585,0.20463452,0.37040973,0.34426653,0.16703731,0.1595475,-0.27327412,0.117727846,-0.20461303,0.5623,0.13180473,-0.24588434,0.27990437,0.19950478,-0.21986401 3 | -0.121323675,0.22108841,-0.05122712,-0.22383638,0.16876855,0.3822427,-0.22865054,-0.052776355,-0.21964073,-0.037044745,-0.11170459,0.24145429,0.2896662,-0.07804406,0.13863695,-0.12559041,0.15888026,-0.21429656,-0.19588785,-0.046847906,0.34040543,0.053378586,-0.04888589,0.14132418,0.015646018,-0.1256538,0.030089306,-0.10468858,0.23007037,-0.098956026,-0.06522557,0.23400976,-0.048509486,0.06657089,-0.05554942,0.40983397,0.3558211,-0.15905029,-0.47036147,0.47963607,-0.0971673,0.1732892,0.31814227,-0.3050525,-0.053033073,0.40883148,0.3673365,0.18562968,0.039881628,-0.08914482,0.13380939,0.25387335,0.13722216,0.39963213,0.2639058,-0.34090948,-0.096785836,0.023794034,-0.1160765,0.036048647,0.3343213,0.20549053,-0.14640294,0.122787766,0.12436655,-0.15197551,-0.3646455,0.011572893,-0.07826664,0.39587656,0.23804724,-0.061639447,0.06261534,-0.04096162,-0.06583071,0.17827882,0.29076567,-0.10418822,-0.2640735,0.39026016,0.11660138,-0.041603427,0.12712954,-0.02091313,0.3206519,0.26864782,0.37341368,0.32679808,0.30381417,0.2207431,0.028281756,-0.5170024,0.09104582,0.01290523,0.30619797,0.13889453,-0.13299002,-0.12039053,0.23554114,-0.010237992,-0.16408595,-0.2583453,-0.30040804,-0.39686918,-0.062289506,0.055171262,0.1420607,-0.2309754,-0.42740965,-0.004847327,0.11297484,0.07272786,0.10599794,-0.12421137,-0.44818217,0.105561525,-0.14687026,0.1242213,-0.10606974,-0.37368846,-0.06335365,0.1450508,-0.3905953,-0.013416642,-0.20391698,-0.012151297,-0.000384938,0.11260824,0.045115,-0.20698312,0.22373249,0.3653549,0.35394326,0.16375701,0.15191813,-0.2880707,0.13293998,-0.22742018,0.57310003,0.111938685,-0.2098862,0.26226622,0.21506551,-0.2614998 4 | -0.12647149,0.2224387,-0.05626697,-0.21252361,0.17446701,0.38784742,-0.22787163,-0.042959783,-0.22046182,-0.036787562,-0.10075308,0.23081627,0.2884972,-0.075948454,0.13750683,-0.13019998,0.1558644,-0.2141889,-0.19011065,-0.044189375,0.35104644,0.05004171,-0.04815023,0.15001766,0.007258588,-0.12809548,0.043490667,-0.102452725,0.23687962,-0.09646358,-0.0785463,0.24590181,-0.061573546,0.056877937,-0.061333913,0.41977122,0.3537029,-0.15154472,-0.46091118,0.49203855,-0.10356745,0.1719695,0.32481942,-0.31575343,-0.06272426,0.418811,0.37415043,0.20344697,0.05089647,-0.09147548,0.12412608,0.27217302,0.14027897,0.41114512,0.26211676,-0.34515452,-0.0908262,0.03150271,-0.12345294,0.03286103,0.3489774,0.21009502,-0.1493726,0.13283484,0.109503455,-0.15648985,-0.37700215,0.013051327,-0.07340217,0.4010188,0.25042313,-0.07484107,0.06772996,-0.04294206,-0.05518987,0.17546496,0.28995577,-0.119381905,-0.26069003,0.3899091,0.10674624,-0.054148573,0.12900084,-0.027716963,0.3151814,0.2790732,0.3718115,0.31907403,0.29737914,0.2199588,0.031572558,-0.51348966,0.09708828,0.017710278,0.31536883,0.13896425,-0.13810141,-0.12058451,0.23814547,0.001163388,-0.17257187,-0.26807183,-0.30481994,-0.39165017,-0.058158517,0.049738623,0.1604871,-0.23782879,-0.42414597,-0.013162261,0.11300014,0.07421233,0.10712779,-0.11992855,-0.4502376,0.10718029,-0.14546339,0.13681456,-0.1042714,-0.36046326,-0.06571079,0.15671265,-0.39400613,-0.003446864,-0.20362456,-0.000454352,-0.002339102,0.113904625,0.045217752,-0.19847092,0.22727802,0.3639405,0.34950522,0.16338775,0.15385546,-0.27253005,0.13121818,-0.23447172,0.573177,0.1080049,-0.2147376,0.25835606,0.21761657,-0.24882331 5 | -0.12831444,0.22512965,-0.051606026,-0.22421971,0.15862444,0.3870217,-0.22432488,-0.04295246,-0.22533849,-0.036502045,-0.10263535,0.22487743,0.31236136,-0.084492,0.14726743,-0.12236495,0.15414368,-0.21813837,-0.20496099,-0.06634394,0.35444766,0.07382378,-0.04927184,0.15534072,0.01749671,-0.127319,0.054448187,-0.0984985,0.23461685,-0.101853214,-0.072889306,0.24572898,-0.05512477,0.05689598,-0.072865784,0.4126688,0.37486708,-0.15807532,-0.47579855,0.4971048,-0.098174475,0.16782233,0.33136746,-0.3328762,-0.064852774,0.42317078,0.3829979,0.19593072,0.046488233,-0.07648117,0.13663304,0.2705565,0.13092238,0.4233895,0.25268382,-0.35041082,-0.08512186,0.034173205,-0.11564445,0.03492246,0.35654888,0.2159682,-0.13755906,0.13346726,0.12417165,-0.15982755,-0.38044393,0.015363967,-0.082237706,0.394026,0.24993259,-0.07846185,0.07608024,-0.049741887,-0.077406846,0.19393365,0.30973724,-0.11365601,-0.27284527,0.40365303,0.10467623,-0.047547664,0.13178691,-0.03920428,0.32986602,0.2683595,0.38006327,0.3348529,0.3129368,0.22318897,0.03668649,-0.52748907,0.10750306,0.007745613,0.30756322,0.13453719,-0.12389097,-0.1295014,0.22123781,0.001452168,-0.15747248,-0.27260947,-0.29144895,-0.39022332,-0.06745301,0.050595246,0.1587989,-0.242248,-0.43236324,-0.002332088,0.12212872,0.079608195,0.10499837,-0.13417056,-0.43953112,0.11991119,-0.14973977,0.13022068,-0.10101039,-0.37020636,-0.055467237,0.1492835,-0.39775354,-0.019343058,-0.20744106,0.008993139,-0.007994552,0.11635317,0.041171268,-0.206211,0.22349542,0.37146854,0.35578448,0.1813303,0.16302682,-0.27894878,0.12763591,-0.21856132,0.58967376,0.11862845,-0.22925451,0.27529514,0.21699423,-0.24829698 6 | -0.114130534,0.22851864,-0.035552744,-0.24215272,0.14432068,0.39641026,-0.21449561,-0.054914996,-0.22757745,-0.038252436,-0.09495043,0.2432186,0.32258752,-0.07895361,0.15060581,-0.13524835,0.14865732,-0.2181788,-0.21954101,-0.08659235,0.3715038,0.09387502,-0.048965853,0.14871685,-0.010055283,-0.12764853,0.059939776,-0.11880367,0.24668278,-0.10962976,-0.07127117,0.25110227,-0.044471443,0.039329715,-0.0724841,0.43132168,0.36549982,-0.16412482,-0.47137454,0.5108494,-0.09851119,0.16606046,0.342058,-0.33238298,-0.09274967,0.41973397,0.38336638,0.2032333,0.040405042,-0.080549374,0.13803613,0.2686081,0.1250036,0.43133533,0.24820155,-0.36354738,-0.07280483,0.047928255,-0.11704853,0.031879503,0.36578172,0.23564404,-0.1354964,0.1339832,0.11649316,-0.15602833,-0.3858405,0.001369841,-0.079151735,0.39604747,0.25543553,-0.06878461,0.084795326,-0.047934227,-0.068166435,0.1976439,0.31871814,-0.12763228,-0.2910425,0.39817598,0.09292585,-0.038611427,0.147805,-0.047261275,0.33272144,0.25212178,0.39329353,0.33830827,0.32265264,0.21496041,0.029720474,-0.53902966,0.108807385,0.015081425,0.31571382,0.14486036,-0.13067591,-0.13523449,0.2292567,0.01703138,-0.17881502,-0.27212584,-0.29108948,-0.38455144,-0.07788092,0.049870614,0.16867809,-0.25034645,-0.45726392,-0.010149567,0.12209461,0.07969596,0.11277512,-0.14743516,-0.45824763,0.12788877,-0.14472662,0.14713264,-0.0866763,-0.3619922,-0.073399045,0.1663907,-0.40769494,-0.019529441,-0.20072046,0.023643354,-0.01637506,0.1018921,0.05977774,-0.2199814,0.21232261,0.3853188,0.37500018,0.18354072,0.16655977,-0.28996018,0.13569966,-0.23347536,0.59996617,0.13054232,-0.25242442,0.27847588,0.22121587,-0.23995394 7 | -0.1317885,0.22521126,-0.0468915,-0.23720437,0.15554209,0.40629423,-0.23536922,-0.053038314,-0.23860736,-0.028621629,-0.116475694,0.23756939,0.2917704,-0.091704555,0.13888018,-0.13380009,0.16736591,-0.22465275,-0.18992022,-0.049548496,0.3579292,0.05083149,-0.05010459,0.14053495,-0.007598544,-0.11911718,0.02901867,-0.10375038,0.2431261,-0.09325183,-0.06626811,0.2510906,-0.06778681,0.059477028,-0.07265392,0.42554379,0.362107,-0.15344997,-0.46995902,0.50012267,-0.105252005,0.16841686,0.33099738,-0.3149289,-0.06605592,0.42849156,0.37245548,0.21210636,0.04191292,-0.083620116,0.13391447,0.27715746,0.1486429,0.42539704,0.26518312,-0.35217184,-0.096240826,0.028149638,-0.12545137,0.039120786,0.35451257,0.21652672,-0.14815721,0.14016289,0.11566213,-0.15050088,-0.38073775,0.010002642,-0.07717122,0.41684517,0.25199884,-0.06816871,0.0737145,-0.059960764,-0.06138461,0.18897241,0.3012362,-0.13356957,-0.26912796,0.39260352,0.11284413,-0.046205442,0.1359515,-0.032782316,0.321116,0.27223697,0.38133597,0.33671895,0.30729693,0.22354817,0.04443747,-0.53089875,0.1108478,0.010130377,0.33065903,0.14536029,-0.13712882,-0.12504457,0.2327408,0.00891286,-0.17241815,-0.26822644,-0.304245,-0.39222127,-0.062932506,0.05893297,0.1603306,-0.2406553,-0.44214883,-0.009068436,0.12470979,0.07889778,0.117066786,-0.11665967,-0.46075836,0.102188334,-0.1470116,0.139716,-0.108089045,-0.36078262,-0.07109566,0.14541915,-0.38663587,-0.003783477,-0.19223964,0.008397805,0.000465618,0.11494725,0.051250625,-0.20361519,0.22600533,0.37807205,0.36802602,0.17908745,0.1606512,-0.29378015,0.13503964,-0.24036217,0.5873159,0.11423187,-0.22358982,0.26666886,0.21898125,-0.25414538 8 | -0.10866106,0.21219164,-0.02909918,-0.23351435,0.14315729,0.38721278,-0.2228251,-0.06119094,-0.20675533,-0.04053688,-0.09394249,0.22225553,0.31830397,-0.06794703,0.15064357,-0.1193574,0.13977943,-0.21302184,-0.21260226,-0.09051562,0.35588858,0.10114254,-0.048424885,0.14661688,-0.000903072,-0.121831864,0.06631419,-0.10542996,0.24474886,-0.11535653,-0.064498834,0.2519285,-0.04571846,0.054731265,-0.057990108,0.41230202,0.36200497,-0.16389465,-0.45580038,0.49164426,-0.09748409,0.16988899,0.3302035,-0.33830944,-0.08726503,0.39726678,0.36798978,0.18004549,0.03644485,-0.060214687,0.12316387,0.26169568,0.11688261,0.42101738,0.21957803,-0.3505093,-0.06662649,0.05374983,-0.11267926,0.017043432,0.35135517,0.21609561,-0.12870231,0.13729063,0.102413155,-0.15460572,-0.38716695,-0.005138771,-0.07703968,0.38148168,0.23911458,-0.067382246,0.0789146,-0.03551713,-0.07535602,0.19800977,0.31281608,-0.10872114,-0.29864788,0.3917157,0.08757356,-0.039350808,0.15209228,-0.041317683,0.33246508,0.23260212,0.37418002,0.33283997,0.31692886,0.19909643,0.018785395,-0.5337622,0.106914125,0.015414447,0.29450598,0.13358065,-0.12124078,-0.13826469,0.21194863,0.008895095,-0.15989093,-0.276415,-0.28617477,-0.36892226,-0.08073803,0.054354906,0.1661054,-0.23912767,-0.44683853,-0.007488431,0.12506844,0.08708036,0.10585058,-0.14851236,-0.4337344,0.112681426,-0.14833519,0.12920539,-0.08140681,-0.35786933,-0.076746486,0.16137686,-0.4037119,-0.02853242,-0.2048551,0.031584032,-0.02453046,0.09455826,0.04861135,-0.21532917,0.19546661,0.38938043,0.36270294,0.17918074,0.16179454,-0.27993038,0.12990673,-0.20914745,0.5796954,0.123601794,-0.24836555,0.2883029,0.2147604,-0.23127504 9 | -0.26341414,0.23368856,-0.1381098,0.072672725,0.17464851,0.45745507,-0.34474328,-0.040679324,-0.3475735,0.2617132,-0.04177412,0.44107586,-0.24756838,-0.2054978,-0.14317693,-0.22912861,0.20278546,-0.08951637,0.27369952,0.42910066,0.008453704,-0.40921864,-0.05931463,0.038528245,-0.23057324,0.008456009,-0.27858883,-0.28191552,0.15455633,0.2128757,-0.060246617,0.04497155,-0.18283723,-0.20235784,-0.037692532,0.254019,-0.16982463,0.11658316,0.08386135,0.09240832,-0.08144816,-0.029652655,-0.07748291,0.32154763,0.27124152,0.33647445,-0.084277876,0.33807778,0.044463888,-0.28394604,0.055193305,0.15888873,0.16310412,-0.042068448,0.4472517,-0.06825702,-0.12183525,0.014494992,-0.078066394,0.1951028,0.16577588,0.12178385,-0.3212973,0.018859442,-0.04645495,0.15842402,0.18249446,0.08970659,0.114838496,0.40397054,0.26964346,0.18533412,0.038104232,-0.17417353,0.3084094,-0.31667283,-0.21676727,-0.29633504,0.17336065,-0.073653966,-0.064154655,-0.11295825,-0.14487274,0.32635722,-0.13065432,0.3399583,0.28560382,0.029977104,-0.060624354,0.000369688,0.2458577,-0.038211916,0.11355284,0.094825424,0.38983217,0.13838461,-0.35563913,0.11589039,0.26033524,0.112150304,-0.3441152,0.11230337,-0.17773758,-0.22094809,0.038323626,0.05300849,-0.10779299,-0.06960581,-0.08286448,-0.018672403,-0.028770212,-0.20781396,0.2635038,0.24902605,-0.3489641,-0.012734629,-0.102147445,0.25825253,-0.2886005,0.099636465,-0.072458886,0.067010835,-0.001458387,0.18214156,0.102169,-0.3522958,0.42207924,0.3336743,0.1872513,-0.021270351,0.29968348,-0.01593914,0.20955715,-0.003944367,-0.0536112,-0.18216366,0.20200473,-0.41262075,0.03255618,-0.1035032,0.25790456,-0.22351302,0.13622181,-0.29920432 10 | -0.22864565,0.21049151,-0.12283048,0.06320025,0.15715586,0.4241537,-0.31464112,-0.039190546,-0.32706195,0.23839277,-0.04468494,0.40657306,-0.2202589,-0.18489575,-0.13140659,-0.21445028,0.18787876,-0.07521579,0.253701,0.39011475,0.008167706,-0.3785531,-0.0483974,0.043878656,-0.21520518,0.011124102,-0.2629845,-0.2659749,0.13570973,0.19737306,-0.05481453,0.03804526,-0.17059138,-0.19160727,-0.03773871,0.24701704,-0.15539314,0.104873404,0.06302183,0.104284115,-0.08636286,-0.01564057,-0.054983374,0.28878027,0.24628982,0.3093491,-0.06666372,0.31372747,0.030120593,-0.27582425,0.045342185,0.15098624,0.1607733,-0.026768103,0.4208898,-0.07629363,-0.12614077,0.010008411,-0.076816514,0.18112293,0.16264042,0.124759994,-0.30556142,0.019044885,-0.026154002,0.14715047,0.14553536,0.0925889,0.10211671,0.38189182,0.24929121,0.1641926,0.030432586,-0.16685697,0.29706684,-0.29640028,-0.18135159,-0.2899431,0.14873432,-0.059215643,-0.044753257,-0.115667954,-0.13428319,0.29287833,-0.11846791,0.31456894,0.26317766,0.03461035,-0.050744873,-0.001528209,0.22713105,-0.040168893,0.10074246,0.08922825,0.36378005,0.13821517,-0.33153006,0.10624836,0.23615292,0.094071425,-0.32722554,0.09935932,-0.16674556,-0.20024556,0.045902852,0.045078456,-0.10037238,-0.069538064,-0.07848429,-0.011942246,-0.03234955,-0.1862188,0.2399245,0.23087025,-0.32996726,-0.012286725,-0.09286363,0.23731162,-0.25667775,0.095748976,-0.07564661,0.06244951,-0.004107624,0.16311066,0.087054856,-0.3186141,0.3847546,0.30922598,0.18445015,-0.014557849,0.2861452,-0.005285903,0.1966073,-0.001616583,-0.045504123,-0.17213719,0.19022603,-0.38662562,0.045092024,-0.09500202,0.22604454,-0.21146691,0.14357594,-0.28666878 11 | -0.231868,0.21712822,-0.11886587,0.07322315,0.1607781,0.43559664,-0.33141974,-0.04468704,-0.33603686,0.25743964,-0.032558728,0.43283415,-0.23483437,-0.1820989,-0.1421074,-0.22302222,0.18229467,-0.082452275,0.2717031,0.40760723,0.003204055,-0.38775498,-0.055335198,0.041449063,-0.21840373,0.013450211,-0.264416,-0.281677,0.14478247,0.21022353,-0.06266309,0.04313337,-0.1699631,-0.20978168,-0.024400556,0.2406438,-0.18062821,0.11647632,0.08702936,0.091811255,-0.08456967,-0.028502818,-0.07041596,0.30664712,0.24206041,0.32187966,-0.08867703,0.31589457,0.034182575,-0.2725251,0.045861382,0.1621194,0.15986685,-0.04854674,0.4221773,-0.06776858,-0.12174482,0.012064513,-0.07426653,0.17813382,0.16456549,0.12982716,-0.29810888,0.012916129,-0.053317595,0.15024835,0.17889142,0.079890646,0.109464414,0.38230962,0.25884283,0.17421016,0.040480923,-0.15539797,0.30024964,-0.3194914,-0.2019044,-0.29496807,0.16271171,-0.0828611,-0.05756019,-0.11887942,-0.14202172,0.30292264,-0.13094836,0.31768543,0.27121672,0.03128929,-0.056387216,-0.001072977,0.22906847,-0.029662644,0.10544301,0.07557816,0.37399697,0.13345933,-0.3374897,0.11879844,0.24055098,0.10662305,-0.3339749,0.10404649,-0.17120537,-0.21430206,0.033804983,0.04764727,-0.10428942,-0.06255097,-0.079948775,-0.012930154,-0.031622034,-0.19372393,0.25720844,0.24625002,-0.3316349,-0.0234663,-0.095965184,0.25888443,-0.26833412,0.09645754,-0.07936725,0.063979454,-0.005534866,0.17965436,0.099178284,-0.33414593,0.40701076,0.32301596,0.18548545,-0.012237567,0.29829866,-0.009393792,0.20630258,-0.002512022,-0.052376706,-0.1615335,0.199882,-0.41195285,0.02323163,-0.09889417,0.23874521,-0.22573344,0.13775529,-0.29534444 12 | -0.23180297,0.2123395,-0.118635364,0.06737738,0.15451844,0.4043328,-0.31333274,-0.03837217,-0.3227128,0.22905001,-0.036031812,0.4047055,-0.2185703,-0.17720346,-0.12569308,-0.20850743,0.1726949,-0.066453956,0.25660115,0.3777963,-0.00194939,-0.37438565,-0.05607692,0.040326808,-0.20575282,0.01732589,-0.25112832,-0.26682073,0.12845083,0.19282752,-0.0631369,0.035526678,-0.15799041,-0.18898708,-0.024960933,0.23395124,-0.16980559,0.10645965,0.081372865,0.09167952,-0.080402695,-0.031535693,-0.06618008,0.29660144,0.24438895,0.3038438,-0.081177495,0.3019999,0.029946981,-0.268799,0.03965028,0.15212934,0.14839272,-0.040825352,0.41328886,-0.07292432,-0.11541414,0.008962505,-0.072972424,0.18086767,0.14005834,0.12515481,-0.28587827,0.003940458,-0.048145644,0.14575467,0.17679466,0.083972394,0.113313906,0.36982468,0.25670832,0.16536568,0.04182143,-0.15944046,0.30031186,-0.31307676,-0.19112699,-0.27929297,0.15546827,-0.0814971,-0.051943626,-0.11931044,-0.14434527,0.30458152,-0.13017932,0.31557783,0.27288482,0.0286249,-0.056787405,0.003201488,0.22329551,-0.03289228,0.09917485,0.07923118,0.3542208,0.13729121,-0.3291268,0.1104347,0.23872301,0.08951256,-0.31334662,0.10919544,-0.16694012,-0.20855175,0.033873297,0.044563476,-0.10455342,-0.060927458,-0.063172884,-0.007051769,-0.037608244,-0.18720852,0.23908779,0.23208717,-0.31673622,-0.021670988,-0.08753328,0.23942982,-0.2704994,0.09347332,-0.06406544,0.058466773,-0.003263529,0.17836277,0.091010824,-0.3424064,0.39330405,0.31160212,0.18381818,-0.013289303,0.29410046,-0.021141725,0.18958175,-0.007177935,-0.04826701,-0.16002484,0.18991736,-0.39086655,0.022200849,-0.104120664,0.24467388,-0.21921092,0.13561435,-0.28519946 13 | -0.24592581,0.21910484,-0.13294731,0.062235475,0.16941798,0.42872185,-0.3381479,-0.04510929,-0.33329162,0.24033575,-0.04196539,0.4237436,-0.21823512,-0.1932016,-0.12725887,-0.21509661,0.19262119,-0.08018911,0.26324248,0.39462757,0.004041499,-0.37733868,-0.06154242,0.044340156,-0.20046133,0.009819606,-0.26000264,-0.27063996,0.1355238,0.19495043,-0.06342855,0.032857098,-0.16798602,-0.18921934,-0.033021856,0.25021523,-0.15423058,0.110842295,0.07649296,0.09095196,-0.081658065,-0.02912951,-0.06881856,0.2955451,0.25534943,0.32443446,-0.07284508,0.31590706,0.04153741,-0.2725434,0.044141605,0.16049261,0.16091725,-0.03259024,0.42643547,-0.07793465,-0.12878118,0.005096318,-0.08231653,0.19042858,0.15732604,0.12804724,-0.30363393,0.007807989,-0.03474606,0.15021966,0.1635152,0.08894194,0.101569034,0.3804455,0.26221856,0.16672996,0.036471326,-0.1608906,0.2936791,-0.30571017,-0.19993879,-0.28547147,0.16167334,-0.06404633,-0.05048226,-0.11581794,-0.14459787,0.31183907,-0.123516,0.33876595,0.27561128,0.033044685,-0.056926776,0.004558031,0.22617437,-0.034441292,0.11248383,0.08619094,0.37268004,0.14176297,-0.34440112,0.1144375,0.2516215,0.09164232,-0.33467203,0.09417091,-0.17235844,-0.21599737,0.03942153,0.04047401,-0.1021498,-0.066510774,-0.08069034,-0.009915293,-0.036748327,-0.19013415,0.2522699,0.24770874,-0.34198943,-0.02009669,-0.099362746,0.24413645,-0.27901706,0.08837763,-0.075563036,0.057861347,-0.000364247,0.17175254,0.09169008,-0.34641287,0.4112639,0.32978147,0.1814837,-0.011187381,0.30339274,-0.015541794,0.20341253,-0.015010358,-0.046092328,-0.16654174,0.19598767,-0.41013828,0.0476133,-0.10808348,0.2523128,-0.2244805,0.13879323,-0.2999156 14 | -0.23567474,0.21201728,-0.11935114,0.063961126,0.15373316,0.42507714,-0.31897712,-0.046697922,-0.3322115,0.24886005,-0.04252821,0.41953343,-0.23874964,-0.18311363,-0.13698334,-0.20945847,0.18114154,-0.08390996,0.2621594,0.4060023,-0.002839505,-0.3909804,-0.052518368,0.03708612,-0.21616144,0.017981127,-0.27550396,-0.27466515,0.14612512,0.2126116,-0.06337737,0.045942497,-0.17951185,-0.19452901,-0.033830985,0.24476686,-0.16104324,0.104667924,0.08548594,0.09050135,-0.07725971,-0.02493855,-0.064656034,0.30092725,0.25887886,0.3103038,-0.0703507,0.3185727,0.04105838,-0.27436805,0.05288927,0.16182047,0.16142467,-0.04224201,0.42610365,-0.07710032,-0.12633345,0.012242097,-0.08471289,0.17986299,0.15389563,0.11641841,-0.2989206,0.01899301,-0.029372726,0.14994477,0.16438155,0.09238601,0.10940613,0.39115775,0.2501306,0.16855389,0.03563535,-0.16722964,0.3054015,-0.31238526,-0.19378111,-0.29359856,0.17450307,-0.06893468,-0.041986413,-0.12213371,-0.13303575,0.30708557,-0.12198707,0.3221979,0.26156202,0.027132438,-0.050789785,0.011204565,0.22405167,-0.032240726,0.10678257,0.08000114,0.37194592,0.13718069,-0.33097097,0.116549745,0.24242765,0.0929472,-0.33231115,0.11077667,-0.17024834,-0.21632926,0.045404784,0.037665848,-0.09841176,-0.069495656,-0.069305725,-0.018644543,-0.029881733,-0.20199089,0.2527207,0.24423893,-0.32927004,-0.024502914,-0.091434635,0.24195552,-0.2665958,0.09353263,-0.07607088,0.0661236,-6.29E-05,0.1721909,0.091621354,-0.33525068,0.4068723,0.3188118,0.18184154,-0.0147585,0.281569,-0.011777052,0.1939004,-0.011681037,-0.054598644,-0.16907918,0.18810046,-0.40167314,0.024680812,-0.10950829,0.2467805,-0.22341332,0.13968621,-0.2959498 15 | -0.23390292,0.21181412,-0.120124206,0.060599584,0.15764832,0.41568005,-0.32286918,-0.04792976,-0.32054475,0.23241735,-0.055962455,0.40829825,-0.21804625,-0.18480235,-0.12910207,-0.21314193,0.18960804,-0.07699687,0.25810423,0.38864693,0.01660435,-0.36946967,-0.05163308,0.045742102,-0.2157252,0.010284158,-0.2641724,-0.25554544,0.13851501,0.19165224,-0.05851784,0.04514389,-0.1752132,-0.18730922,-0.03242254,0.24540614,-0.14685385,0.09445538,0.072942905,0.09518053,-0.0804211,-0.016254928,-0.061427448,0.28099996,0.25021768,0.31189495,-0.06649114,0.30565992,0.036552776,-0.26612234,0.05758203,0.15319142,0.15657185,-0.034051973,0.40976816,-0.07721634,-0.12548843,0.007454086,-0.08057784,0.17283916,0.16321433,0.1110427,-0.30040008,0.019029524,-0.035547562,0.13433872,0.1485173,0.0868754,0.096477464,0.3772294,0.24826734,0.15970518,0.028437864,-0.16449502,0.28579286,-0.29138285,-0.1964128,-0.28003222,0.15949368,-0.061312042,-0.038457584,-0.1094114,-0.13127795,0.29506934,-0.10665832,0.32419428,0.24735083,0.033930954,-0.04562625,0.00965503,0.2199644,-0.03908507,0.10925526,0.08109762,0.36713722,0.13602948,-0.32591423,0.11109263,0.24523674,0.09179502,-0.3153256,0.09919428,-0.17332813,-0.19971743,0.0454981,0.046747576,-0.09490965,-0.069998935,-0.07783011,-0.017524038,-0.03096345,-0.18225396,0.24263045,0.22781487,-0.3185599,-0.018685473,-0.09118774,0.2245299,-0.25832325,0.079814315,-0.07153967,0.053764213,0.000430378,0.16754898,0.09160675,-0.3177248,0.3818592,0.30970886,0.17549062,-0.012839713,0.27749252,-0.00917868,0.20051783,-0.004355022,-0.053241063,-0.1706473,0.18466543,-0.38456765,0.04430192,-0.10691058,0.23200889,-0.20590694,0.13137044,-0.28539646 16 | -0.23259076,0.2120204,-0.12960462,0.07167157,0.16202095,0.43705073,-0.33549622,-0.037544005,-0.33832842,0.24487323,-0.028520223,0.42625627,-0.22657415,-0.1809679,-0.13625483,-0.21635929,0.17156444,-0.07678914,0.262777,0.40124935,-0.005975636,-0.3855924,-0.053908736,0.044027902,-0.21645936,0.015962131,-0.26581582,-0.28090394,0.153365,0.20607454,-0.07201117,0.034054592,-0.16852292,-0.20646214,-0.017108964,0.24602583,-0.18547827,0.11894993,0.09074682,0.089085214,-0.08157564,-0.034767173,-0.07690358,0.31405386,0.2501411,0.32279104,-0.083117306,0.32112896,0.046043836,-0.27846712,0.046557005,0.16618489,0.14808948,-0.042148583,0.4350671,-0.07234527,-0.11798704,0.017690992,-0.07509602,0.18962887,0.15335037,0.13005665,-0.3033596,0.005993942,-0.052360475,0.15203075,0.17070577,0.09193918,0.11185934,0.3813476,0.25807977,0.16803177,0.045696706,-0.1538603,0.30908486,-0.3105514,-0.19855097,-0.29332662,0.15722252,-0.08049343,-0.057118967,-0.11540335,-0.14602253,0.30595613,-0.1268359,0.31921974,0.2754385,0.029151104,-0.058533687,0.005392043,0.2323911,-0.03672987,0.10619908,0.08444285,0.36740112,0.1299835,-0.3399052,0.108314455,0.2392936,0.10263955,-0.32484058,0.10640715,-0.17090957,-0.20515892,0.032460663,0.041747343,-0.095815934,-0.06761284,-0.07587712,-0.011599539,-0.034217622,-0.1960333,0.24933787,0.24051447,-0.33041042,-0.004518324,-0.08214843,0.24586023,-0.26660654,0.10645867,-0.07524586,0.07252277,0.002288611,0.1804016,0.094996326,-0.33697605,0.40005222,0.30886912,0.18154472,-0.015297576,0.28909776,-0.012425961,0.19468644,-0.013346773,-0.03871516,-0.16489613,0.18999106,-0.39858007,0.026071532,-0.09820737,0.24364047,-0.2216601,0.13201994,-0.28928393 17 | -0.23628704,0.2068361,-0.12459894,0.073678106,0.1563879,0.43099272,-0.32494965,-0.049532074,-0.34199563,0.23893882,-0.040013812,0.43084136,-0.2354422,-0.17323932,-0.13382223,-0.21670774,0.18249038,-0.07607387,0.26317278,0.3994676,-0.002823638,-0.39271075,-0.058878604,0.0369281,-0.21678433,0.01919181,-0.26306355,-0.28930944,0.14537305,0.21761279,-0.059643775,0.031421956,-0.1770002,-0.2215277,-0.022414206,0.24379368,-0.19335788,0.1174829,0.09373098,0.0824209,-0.07943807,-0.038613264,-0.071228676,0.32353666,0.26796377,0.33152622,-0.0884358,0.32378006,0.042959776,-0.2810748,0.043845426,0.15376364,0.15312973,-0.04483831,0.43935063,-0.077931665,-0.11245239,0.015671285,-0.08558337,0.19514607,0.14850122,0.14199649,-0.31335193,0.003879624,-0.04932284,0.15215255,0.1737227,0.08788275,0.11359188,0.3875635,0.25871354,0.17747557,0.0433397,-0.16626783,0.31263137,-0.3153383,-0.20398198,-0.29285294,0.15145586,-0.07553996,-0.06271261,-0.118008144,-0.14159505,0.31731114,-0.12297521,0.32800296,0.2749688,0.03246548,-0.057489995,0.001941629,0.23087639,-0.028834606,0.11190528,0.092234574,0.36275724,0.13671386,-0.3382404,0.111811735,0.23199168,0.09295696,-0.32949287,0.1138331,-0.17224286,-0.1994448,0.026872754,0.038621098,-0.10587332,-0.06517415,-0.07073132,-0.009702949,-0.03754069,-0.19811387,0.23991315,0.24523301,-0.33577892,-0.004525652,-0.08285399,0.24947825,-0.26796094,0.09780785,-0.06583683,0.06929014,-0.007490611,0.17241399,0.093879126,-0.34315246,0.40409315,0.30882233,0.18061161,-0.016518297,0.29196313,-0.010530226,0.20077527,-0.011709519,-0.04635354,-0.17044373,0.19985704,-0.4067056,0.02915224,-0.098805115,0.25314257,-0.22093187,0.14624837,-0.29610977 18 | -0.2281645,0.20128307,-0.11882598,0.07244961,0.16221482,0.42421323,-0.3223028,-0.04626737,-0.34197026,0.24760637,-0.037845943,0.42465144,-0.23577346,-0.18807214,-0.13395329,-0.21618792,0.18592782,-0.08131509,0.26354042,0.3972869,-0.002913434,-0.3850626,-0.053154796,0.034941588,-0.21373335,0.013133327,-0.26513535,-0.27755514,0.14393713,0.21114442,-0.05851918,0.029337492,-0.17280814,-0.20906202,-0.024566341,0.24030003,-0.17814276,0.110639036,0.10465211,0.07660852,-0.06868288,-0.031040745,-0.07746302,0.31215408,0.24252184,0.30811247,-0.08641654,0.3085472,0.043814715,-0.26931867,0.042699743,0.15127942,0.14906703,-0.046521064,0.41028368,-0.06970559,-0.107912116,0.015148927,-0.06784287,0.17771178,0.14757462,0.12961084,-0.2909905,0.010274109,-0.051725984,0.14584112,0.18019755,0.08647174,0.11084319,0.37108344,0.24653518,0.17155673,0.04562265,-0.16423483,0.30713722,-0.31706682,-0.2082103,-0.281201,0.15352124,-0.08340259,-0.07045149,-0.117490254,-0.13161221,0.31010047,-0.12670052,0.30428678,0.2623383,0.01628018,-0.05998064,0.000334103,0.2175609,-0.022676405,0.09792932,0.08422337,0.35765952,0.128193,-0.3326177,0.10860014,0.23343644,0.098115295,-0.3268253,0.11418702,-0.16155729,-0.1956517,0.03740681,0.043831237,-0.10591626,-0.055790715,-0.06679813,-0.008909917,-0.030606791,-0.1959875,0.24418288,0.23563112,-0.31277516,-0.019250225,-0.08929252,0.2449474,-0.2578653,0.10638223,-0.08067445,0.06750608,0.010631127,0.16919343,0.10123411,-0.33844513,0.40017945,0.31291574,0.18783596,-0.014075529,0.28783995,-0.013545724,0.18761523,-0.010291426,-0.051689886,-0.15356082,0.19561075,-0.3895903,0.025371712,-0.099599384,0.24406971,-0.22260655,0.13019185,-0.2894918 19 | -0.22564337,0.19741127,-0.11153799,0.07531675,0.15991162,0.40716368,-0.30719745,-0.04279448,-0.3286594,0.22621593,-0.037651367,0.4061237,-0.2251411,-0.17577787,-0.13645989,-0.20830348,0.17195237,-0.07641987,0.2515861,0.38836592,0.003763844,-0.36897036,-0.05760395,0.03795169,-0.1918461,0.010657615,-0.25883523,-0.24946144,0.13186584,0.19092703,-0.059044737,0.03360593,-0.16849394,-0.18267496,-0.020497974,0.21755604,-0.15554398,0.109380096,0.074067265,0.077058375,-0.080772996,-0.023878938,-0.07070604,0.2905139,0.25299713,0.30819145,-0.067904845,0.2991679,0.029379364,-0.26079607,0.038030606,0.14775327,0.144329,-0.041122425,0.40648913,-0.06047689,-0.13270281,-0.008411687,-0.08532306,0.18413413,0.13559607,0.1201816,-0.29713753,0.013964238,-0.035180256,0.14416026,0.15781578,0.093373924,0.098408565,0.37098956,0.2404734,0.16147915,0.025223283,-0.15488382,0.2844821,-0.30629334,-0.18422037,-0.27506095,0.1657705,-0.073243745,-0.03800722,-0.11369666,-0.14153418,0.30120265,-0.11811238,0.32369745,0.25945815,0.032170914,-0.05939007,0.011214116,0.22063969,-0.02930055,0.09277179,0.07502367,0.35060862,0.13204603,-0.31465825,0.11250422,0.23286277,0.0924571,-0.31492653,0.10680388,-0.17119268,-0.21469887,0.043001603,0.03451101,-0.104896605,-0.06744376,-0.07027987,-0.010970849,-0.033420224,-0.18613113,0.23776336,0.2305785,-0.31275046,-0.009444888,-0.07588454,0.21742176,-0.26749778,0.07913258,-0.05443543,0.057728056,0.009945308,0.17037135,0.08735623,-0.33095112,0.38309184,0.2997484,0.17460544,-0.011478053,0.2822767,-0.018519996,0.17954466,-0.007380315,-0.05507574,-0.14704664,0.1774853,-0.38622683,0.01746701,-0.09511476,0.24636951,-0.21266168,0.12814131,-0.2827926 20 | -0.22301345,0.20166259,-0.11573666,0.068515226,0.14482456,0.41100222,-0.31410107,-0.0407295,-0.3062359,0.23583174,-0.036838718,0.38937917,-0.22740069,-0.17308636,-0.13300069,-0.20921665,0.17525792,-0.06643983,0.2534912,0.37825206,0.005691128,-0.37080267,-0.059903357,0.0318931,-0.20063464,0.011686133,-0.25876465,-0.26477838,0.14040814,0.18528265,-0.06205745,0.04505026,-0.16668063,-0.19201061,-0.024572778,0.23311585,-0.16667928,0.09920529,0.08366824,0.09471916,-0.08503114,-0.02106667,-0.07192601,0.28318012,0.25132096,0.30619285,-0.08102623,0.30669296,0.03479721,-0.26783168,0.040235795,0.14892882,0.15179726,-0.036378663,0.40153506,-0.06504711,-0.11546662,0.008776668,-0.07921383,0.16842748,0.15474322,0.11034165,-0.28502622,0.004763732,-0.04399255,0.14440559,0.16197568,0.08657286,0.105017915,0.35969472,0.23942682,0.1676175,0.027938347,-0.15919319,0.28775516,-0.29525468,-0.18856747,-0.27555832,0.15457879,-0.069005616,-0.041671943,-0.11119239,-0.1318594,0.29536173,-0.115389645,0.30571857,0.25589025,0.03676221,-0.05231177,5.60E-05,0.21761332,-0.034688827,0.101078816,0.075175636,0.35275143,0.1332942,-0.32295904,0.11390224,0.23813808,0.095655486,-0.31056547,0.09599682,-0.15593222,-0.1968397,0.0335528,0.040426992,-0.10073149,-0.068029545,-0.07806159,-0.016033284,-0.026129346,-0.19019397,0.23929906,0.23338282,-0.3195564,-0.018049052,-0.082645126,0.23239587,-0.2493889,0.08987839,-0.06414271,0.061182767,-0.000911128,0.1702074,0.09009217,-0.31221908,0.37953308,0.30792177,0.17274056,-0.012661405,0.28031668,-0.01436663,0.1804003,-0.013888418,-0.052426916,-0.16208199,0.18839924,-0.38456166,0.03163596,-0.10545345,0.23027726,-0.21666524,0.117957085,-0.27641958 21 | -0.26489025,0.24069108,-0.35063297,0.11658295,0.52905184,-0.003064177,-0.26816124,0.09574023,-0.3152926,-0.24691212,-0.37813014,0.2622413,0.13949865,-0.17680006,-0.02823165,-0.057950575,0.22238412,-0.2668053,0.14486802,0.4185195,0.07242752,-0.26775694,-0.13370372,0.16884735,0.640907,-0.18866968,-0.20893137,0.32736424,-0.30055815,0.1848596,-0.109912686,-0.15166627,-0.16184266,0.54151654,0.03417771,-0.18324354,0.5276493,-0.097458646,-0.84416205,0.14377591,-0.000573584,0.17273457,0.20726742,-0.035056457,0.61238897,0.40784934,0.295467,0.044118486,0.009168909,-0.24502341,0.059608635,-0.071858466,0.2422646,0.09407201,0.56200755,-0.06941684,-0.6073777,-0.58690584,-0.2857486,0.27150434,-0.13028465,-0.03700372,-0.39544526,-0.042369734,0.4473924,-0.28586504,-0.2282111,0.30207756,-0.17096648,0.34465528,0.10458741,-0.1604161,-0.26935896,-0.028098999,-0.25841403,-0.10326576,0.060914524,0.23373184,0.31041554,0.22503062,0.5159655,-0.07170732,-0.29217076,0.16992079,0.19766334,0.73026186,0.1477679,0.16544314,-0.032386657,0.4116174,0.075188525,-0.15508978,-0.20674732,-0.027852636,0.16306633,-0.031566493,-0.07865765,0.103575386,0.27973,-0.34374887,0.10026424,-0.014495379,-0.41034812,-0.64900947,0.42254663,-0.004712158,-0.21492666,-0.0960381,0.036188956,0.14657839,-0.1259422,0.107090846,0.0338752,0.22524051,-0.25901952,-0.01510608,0.012719219,-0.39705896,-0.42307064,-0.68598384,0.300512,-0.13993742,-0.1461816,0.14387041,-0.36527625,-0.424742,0.3094561,0.36932525,-0.28861642,0.10247346,0.51740235,-0.18070164,-0.21755539,-0.070389345,-0.17762746,-0.08663943,0.03359422,-0.2911844,0.30505514,-0.17969692,0.52282435,-0.11546281,-0.088932954,-0.47610348 22 | -0.29118246,0.2716995,-0.3550198,0.0997522,0.53885615,0.045030795,-0.29197282,0.090491906,-0.33065248,-0.2279239,-0.384374,0.27378994,0.14531301,-0.1741619,-0.024125926,-0.06817861,0.24103667,-0.27625355,0.13805905,0.42627802,0.09635435,-0.27032197,-0.13436256,0.18059663,0.6366703,-0.19739385,-0.20972814,0.31449112,-0.28332654,0.1887301,-0.10687202,-0.14267585,-0.16901188,0.5277472,0.023310686,-0.15921633,0.5350004,-0.09084138,-0.85334086,0.17738861,-0.003004693,0.16935395,0.21413831,-0.043343525,0.59927934,0.43079463,0.30873832,0.05745492,0.011946522,-0.2586932,0.07415619,-0.067650035,0.2548926,0.10742618,0.56866217,-0.087752834,-0.6043808,-0.580271,-0.2897386,0.26494637,-0.11153733,-0.020820606,-0.4171471,-0.032035273,0.44345582,-0.2839758,-0.22529735,0.29887772,-0.1646044,0.37709022,0.11877303,-0.15212902,-0.25239554,-0.043277327,-0.24684554,-0.107977204,0.06179886,0.22115108,0.2937066,0.23199874,0.51628315,-0.06347495,-0.2831978,0.16460526,0.20967495,0.7502133,0.167338,0.17794138,-0.01891427,0.40473092,0.0775973,-0.17247622,-0.19963622,-0.027832637,0.18157011,-0.025209475,-0.09173076,0.10134554,0.29180983,-0.34307164,0.10122355,-0.02520954,-0.42764115,-0.6860442,0.43673164,-0.007461991,-0.21619675,-0.117549114,0.023239672,0.1442845,-0.13193943,0.10396086,0.03729182,0.23179421,-0.28233096,-0.019920565,0.000836457,-0.3849948,-0.44134274,-0.70112544,0.29926354,-0.13140409,-0.16921413,0.14292614,-0.3763421,-0.4349853,0.32498142,0.38335827,-0.29429805,0.098003745,0.53691703,-0.16217412,-0.21006726,-0.062109068,-0.17763071,-0.08849005,0.03710023,-0.30961192,0.3220227,-0.17692739,0.5245661,-0.10927866,-0.07496885,-0.5035684 23 | -0.27772322,0.265473,-0.3393558,0.10084934,0.53471833,0.045688782,-0.29379964,0.08799412,-0.3307962,-0.22449216,-0.38279152,0.27858087,0.1335254,-0.18669756,-0.024627382,-0.06282728,0.24641895,-0.26190084,0.1339991,0.4187728,0.08925119,-0.27373397,-0.13857573,0.16796172,0.61309296,-0.19712496,-0.2190637,0.31605616,-0.2773864,0.18533117,-0.11391367,-0.13928503,-0.17212947,0.52465546,0.020924823,-0.15395848,0.51481205,-0.084804475,-0.8337874,0.16382417,-0.002037754,0.1850364,0.21020311,-0.03779081,0.6074584,0.4264961,0.30466616,0.050465226,0.00397446,-0.26000682,0.071966924,-0.06456053,0.25597548,0.105257004,0.5760521,-0.076739036,-0.6141179,-0.5747103,-0.29634416,0.26505432,-0.1033941,-0.02276906,-0.40872434,-0.036391422,0.44987792,-0.28500858,-0.22824414,0.29111218,-0.1732442,0.3750961,0.120838605,-0.15495801,-0.25260487,-0.037399646,-0.23424017,-0.10158839,0.055614185,0.2078797,0.30414307,0.23716556,0.5148141,-0.07439155,-0.2939042,0.1684096,0.19587368,0.74923694,0.16419381,0.17313696,-0.012111148,0.40717155,0.0888766,-0.17466405,-0.18768556,-0.02636719,0.1911514,-0.011938663,-0.10429171,0.09938736,0.28930888,-0.33172375,0.09115443,-0.019929944,-0.41920516,-0.6710781,0.43050662,-0.002769609,-0.21244608,-0.10674655,0.017350808,0.14897566,-0.123784564,0.100061044,0.040781476,0.2265415,-0.29223812,-0.01645452,0.002704973,-0.37764105,-0.4268871,-0.6813929,0.29339784,-0.1322944,-0.16168727,0.1419475,-0.36362535,-0.4383426,0.3158935,0.38223693,-0.2815218,0.0905909,0.5304636,-0.15855063,-0.20181684,-0.04946047,-0.17762971,-0.098479845,0.048350833,-0.29865995,0.311929,-0.17693147,0.51771677,-0.1153601,-0.07642135,-0.48822364 24 | -0.28694233,0.26051518,-0.35445252,0.1069744,0.5330514,0.04368264,-0.29716286,0.09810694,-0.33354357,-0.21688251,-0.3807708,0.27728853,0.122570366,-0.19487877,-0.03601382,-0.08067738,0.24925698,-0.26388654,0.14622237,0.43657088,0.08788458,-0.28345165,-0.1283315,0.17349656,0.6033898,-0.19000192,-0.2374885,0.3147655,-0.2799759,0.18567504,-0.11402743,-0.13743924,-0.17981817,0.5261015,0.019000439,-0.14695656,0.52141595,-0.090416916,-0.8362183,0.1740561,-0.014587246,0.18024822,0.20653865,-0.029970983,0.6091433,0.43094087,0.3078411,0.06525494,0.004148113,-0.26011005,0.07750914,-0.055547073,0.27477944,0.10444502,0.5879974,-0.08405363,-0.6204136,-0.5717235,-0.290435,0.28354877,-0.08810507,-0.029293653,-0.42961,-0.03654531,0.44966602,-0.26922137,-0.22698902,0.29784355,-0.1763808,0.38999712,0.13416658,-0.15555803,-0.26181993,-0.047620874,-0.23523606,-0.11154732,0.046952277,0.19979793,0.31615475,0.23347302,0.51745254,-0.06726405,-0.29248038,0.1754592,0.20252146,0.7597403,0.17409612,0.18203965,-0.021526227,0.41106242,0.08282653,-0.1768011,-0.18428837,-0.014492828,0.21457373,-0.003597006,-0.101747915,0.108300135,0.30140865,-0.3372213,0.07811071,-0.021694798,-0.4243863,-0.6649954,0.43471876,-0.006760572,-0.21255837,-0.10974978,0.017671855,0.14064208,-0.12352085,0.0930694,0.061371684,0.23499066,-0.28944734,-0.031783544,0.00020309,-0.37079993,-0.43102282,-0.6869519,0.283346,-0.14160615,-0.15751982,0.14105102,-0.35285273,-0.43354785,0.3258996,0.39148173,-0.27355343,0.09505396,0.5372688,-0.16027713,-0.18583904,-0.056414574,-0.17221667,-0.10066807,0.042723093,-0.31166118,0.31986317,-0.19452833,0.5140118,-0.116544574,-0.06557696,-0.49622008 25 | -0.28630403,0.264226,-0.35411114,0.10772394,0.5403345,0.033347823,-0.28217366,0.098918155,-0.3228512,-0.23562177,-0.37658143,0.2797064,0.13888961,-0.18155418,-0.029898861,-0.067100495,0.24551369,-0.26691964,0.14355978,0.41940662,0.089391515,-0.2765857,-0.1360315,0.1765328,0.62634087,-0.19597116,-0.21316767,0.31618357,-0.2869297,0.18599841,-0.11446358,-0.13639642,-0.17612347,0.52443105,0.024386706,-0.15267734,0.5309511,-0.0978374,-0.8412512,0.16533697,-0.008413223,0.1774922,0.21977723,-0.03465365,0.61387306,0.42152175,0.3021743,0.06014714,0.015263124,-0.25407538,0.071098395,-0.05868717,0.25765413,0.10999588,0.57557523,-0.08361245,-0.6082642,-0.5794194,-0.29217893,0.26713154,-0.10375269,-0.023892079,-0.41118884,-0.044657536,0.44502345,-0.2771334,-0.22515951,0.29737493,-0.17136677,0.3694176,0.11323053,-0.15573591,-0.26024804,-0.040688097,-0.23907861,-0.10316656,0.050761055,0.21102794,0.2953445,0.2277449,0.51325136,-0.06255884,-0.2935177,0.17096815,0.20742965,0.7506589,0.17094715,0.16999869,-0.017673407,0.41445786,0.08432285,-0.17157385,-0.19500896,-0.019093573,0.19039509,-0.011021712,-0.09727694,0.09406006,0.29488546,-0.3438946,0.09283168,-0.016107148,-0.41917765,-0.6697691,0.4298777,-0.013212323,-0.21174872,-0.11141406,0.017826337,0.1461655,-0.12528278,0.099619284,0.04438375,0.22063415,-0.27639225,-0.02241491,0.000890253,-0.37443066,-0.42824596,-0.6899211,0.2953208,-0.13548109,-0.15273419,0.1471144,-0.36194718,-0.43498528,0.31923518,0.3764574,-0.27658716,0.09675707,0.536741,-0.1618805,-0.20364998,-0.05887711,-0.18001635,-0.08737163,0.04631458,-0.30109775,0.3127336,-0.18564974,0.5253367,-0.10977967,-0.0758378,-0.4982121 26 | -0.28502217,0.26093695,-0.351925,0.10359282,0.538902,0.0545291,-0.29047042,0.09423392,-0.32829696,-0.22051786,-0.38276416,0.26997218,0.13764659,-0.19154294,-0.025616942,-0.06935677,0.24865754,-0.27433112,0.1362111,0.42682663,0.09155046,-0.28026545,-0.12983827,0.17380874,0.6068582,-0.19183356,-0.21958861,0.3092468,-0.26949275,0.19286485,-0.11043509,-0.14057434,-0.18164529,0.52781004,0.013166397,-0.14790094,0.5277661,-0.09634278,-0.8398229,0.17065543,-0.014649969,0.18623804,0.21310146,-0.027682217,0.6080252,0.42103884,0.31134892,0.06373099,0.012494215,-0.25771606,0.08004319,-0.0593327,0.26750502,0.11577451,0.5793458,-0.086516395,-0.6120426,-0.57136226,-0.2940639,0.2677257,-0.09443339,-0.02424847,-0.41725862,-0.040228333,0.4522384,-0.2728591,-0.23410183,0.29670522,-0.16814518,0.383807,0.13146603,-0.16343689,-0.2570113,-0.046685,-0.23475252,-0.10954017,0.0616056,0.19334441,0.30299264,0.23582529,0.51964235,-0.0691248,-0.28478378,0.16747037,0.20753175,0.76458466,0.17600751,0.1798959,-0.02062818,0.4139234,0.08843682,-0.18086265,-0.19498414,-0.021207904,0.20005657,-0.011714884,-0.10825637,0.10373464,0.30831578,-0.3388804,0.08050262,-0.026555741,-0.42157078,-0.6695937,0.43799406,-0.002508877,-0.21491645,-0.11264898,0.017891688,0.1394981,-0.1276202,0.09458663,0.057570986,0.23555118,-0.30204892,-0.017328411,-0.006812467,-0.36846328,-0.43151587,-0.6963481,0.29297745,-0.13717748,-0.16858095,0.14455289,-0.35329622,-0.43276632,0.31349385,0.3936487,-0.27346984,0.09042996,0.5425775,-0.1501739,-0.18754195,-0.056486495,-0.17925406,-0.10229374,0.051424243,-0.31599402,0.32586485,-0.17966418,0.5207389,-0.1142121,-0.059668932,-0.49172705 27 | -0.29097414,0.2599182,-0.35307246,0.0974068,0.5406978,0.066920176,-0.30292702,0.08434539,-0.33936605,-0.21544883,-0.3802904,0.28082603,0.14131737,-0.19641732,-0.03320461,-0.06356529,0.25010532,-0.27685788,0.14899138,0.42424566,0.09005134,-0.27380514,-0.14005539,0.17627376,0.5919404,-0.19443144,-0.21452937,0.30964094,-0.26317284,0.18746181,-0.10690478,-0.13581859,-0.1773951,0.516469,0.019732697,-0.13356891,0.52095824,-0.08943593,-0.8319941,0.17864642,-0.003139661,0.17566688,0.21531717,-0.032835104,0.5988687,0.42850748,0.29934755,0.054157984,0.003058672,-0.26440638,0.06679092,-0.051089928,0.25458395,0.11460921,0.57402754,-0.08200744,-0.6102356,-0.56833583,-0.28851083,0.27739128,-0.09473941,-0.020664481,-0.4145318,-0.02579534,0.4438184,-0.27853116,-0.22284722,0.29386857,-0.1615173,0.3715512,0.1262621,-0.15003131,-0.24457154,-0.048309114,-0.23350647,-0.11149807,0.058474302,0.19109552,0.30009544,0.24273765,0.51005256,-0.06528331,-0.28559375,0.17882463,0.19342645,0.74263805,0.16511308,0.17733236,-0.013321326,0.39871702,0.09194581,-0.17823064,-0.18844956,-0.017383104,0.20515546,-0.01564462,-0.09859963,0.099928595,0.2983934,-0.32818654,0.08187657,-0.017042376,-0.41945863,-0.66909957,0.42294332,-0.000540732,-0.21351306,-0.11674459,0.011625821,0.14037184,-0.120150365,0.08900511,0.056513466,0.23197627,-0.30227432,-0.024801817,-0.005248302,-0.3669973,-0.42757818,-0.67995185,0.2788402,-0.13581812,-0.16017355,0.14408384,-0.3614816,-0.4349915,0.3138875,0.38678467,-0.2779837,0.09061556,0.5356421,-0.16203612,-0.18947224,-0.044758786,-0.16334087,-0.10243772,0.047100514,-0.3136966,0.31760225,-0.17648304,0.5100176,-0.11173465,-0.06022364,-0.49325484 28 | -0.21722454,0.20541123,-0.11583918,0.07695477,0.14664157,0.41009003,-0.31821206,-0.04458492,-0.31847095,0.24408165,-0.027453259,0.4002259,-0.23492391,-0.17670344,-0.14047278,-0.20520903,0.17398296,-0.07509474,0.26456952,0.38819116,-0.008362191,-0.38017195,-0.055749424,0.03842264,-0.20845991,0.019126885,-0.26121855,-0.28005633,0.13448651,0.20187823,-0.065549925,0.030131947,-0.17039002,-0.19991776,-0.017293848,0.23493862,-0.1706032,0.11344582,0.09603025,0.08966092,-0.08271291,-0.037456658,-0.07652953,0.30148137,0.25252366,0.32128474,-0.08311779,0.31331643,0.0379055,-0.26847982,0.04349304,0.15599959,0.15340874,-0.049625892,0.41342586,-0.071746655,-0.12241916,0.015063992,-0.08273294,0.17588538,0.1548759,0.13382742,-0.29344374,0.006339896,-0.044288024,0.14911173,0.17434408,0.082724094,0.108705126,0.37357208,0.2527531,0.177499,0.037442226,-0.16043039,0.3044679,-0.30824006,-0.20472658,-0.2838604,0.16195424,-0.07537035,-0.060314488,-0.1197052,-0.1383669,0.3026578,-0.1198845,0.31454012,0.2697072,0.034495533,-0.06251421,-0.000893608,0.22531201,-0.038194593,0.10710032,0.076149784,0.3621983,0.126948,-0.32733545,0.11274281,0.23726484,0.10142618,-0.32087007,0.11166452,-0.17065191,-0.21252686,0.032494713,0.035716973,-0.096190274,-0.057465546,-0.071123436,-0.017670264,-0.031749338,-0.1891159,0.24174842,0.24335462,-0.31794646,-0.01732465,-0.09552761,0.25434285,-0.27171206,0.095384486,-0.06956363,0.05936742,-0.003475049,0.1814145,0.097274676,-0.33317342,0.40290985,0.30910152,0.17788292,-0.022609636,0.29475424,-0.017956812,0.19517519,-0.008074085,-0.054524627,-0.15789425,0.1994741,-0.39583907,0.025839139,-0.10167251,0.24541065,-0.22318973,0.1283649,-0.28969023 29 | -0.23723316,0.21749374,-0.13049564,0.058529306,0.17334108,0.4407418,-0.3260851,-0.044905256,-0.32993874,0.23975708,-0.051684234,0.41487005,-0.22570136,-0.1855238,-0.12816948,-0.21128817,0.18202637,-0.0847937,0.2539953,0.38690618,0.012334107,-0.3811153,-0.057195086,0.038789876,-0.20943157,0.00884831,-0.26690972,-0.27400175,0.14220144,0.19447002,-0.067228846,0.039333522,-0.1773448,-0.18826126,-0.03081654,0.2521015,-0.15493552,0.10905792,0.06535296,0.10546149,-0.08260703,-0.012843591,-0.055831682,0.28940135,0.25458467,0.3251121,-0.060702138,0.30947098,0.03640407,-0.2812494,0.04759653,0.16427964,0.15743841,-0.032691427,0.4187253,-0.08425254,-0.12224955,0.006828624,-0.08037843,0.1863055,0.1555135,0.1275957,-0.30530727,0.016993167,-0.023635464,0.14106105,0.1511398,0.08546935,0.09552074,0.38868502,0.2511791,0.15475664,0.0336097,-0.16251342,0.2831303,-0.30239815,-0.19106835,-0.2842678,0.16210069,-0.05769584,-0.04032573,-0.11354478,-0.12729105,0.29921624,-0.101488434,0.3376121,0.2724982,0.04313661,-0.049026456,0.014301287,0.21735214,-0.045365684,0.10636607,0.07979879,0.36797756,0.13467865,-0.32574978,0.11236067,0.25207105,0.089941904,-0.32373768,0.090686634,-0.1828928,-0.22260399,0.043820098,0.044843618,-0.10219555,-0.067284845,-0.08780954,-0.010032822,-0.02856849,-0.1770491,0.24838425,0.23140427,-0.33226177,-0.016970536,-0.08361446,0.2313674,-0.26647922,0.06731697,-0.06436716,0.06906726,-0.012636892,0.16302358,0.07753787,-0.32686025,0.3899639,0.30690765,0.17416306,-0.016279772,0.29388815,-0.001041422,0.20458084,-0.006541153,-0.04944314,-0.17484722,0.19012032,-0.3966438,0.059722617,-0.10625624,0.23047249,-0.20748858,0.14226548,-0.2885019 30 | -0.1216035,0.22634597,-0.04138942,-0.23038393,0.15902919,0.38855675,-0.21903214,-0.060954727,-0.21964951,-0.044426586,-0.10462712,0.23796508,0.32278895,-0.070057176,0.15635684,-0.12592314,0.14865533,-0.21278466,-0.21342343,-0.08274489,0.36048624,0.09029957,-0.05737969,0.15409546,0.009207315,-0.12140777,0.058205023,-0.1153514,0.24860182,-0.11444168,-0.06816493,0.25184357,-0.04286786,0.046693917,-0.06398077,0.4166443,0.3703268,-0.15457118,-0.48030847,0.50551337,-0.107826196,0.17884618,0.32892638,-0.33772185,-0.07814664,0.42247796,0.37702763,0.19709477,0.035587836,-0.07087951,0.13320819,0.26541555,0.12912452,0.4289928,0.24903576,-0.3579181,-0.08071254,0.035144195,-0.117325485,0.03475603,0.35350645,0.22262391,-0.13700624,0.12676086,0.11845626,-0.15629196,-0.39317802,0.002797424,-0.07336038,0.39873224,0.25467947,-0.0728123,0.08331337,-0.04476131,-0.071304955,0.19606051,0.31752366,-0.10428037,-0.2976389,0.40278512,0.08702867,-0.040046595,0.14824986,-0.04615979,0.3373265,0.23812658,0.38298234,0.345531,0.32266152,0.21485092,0.035286475,-0.54688627,0.10464457,0.017671145,0.3110342,0.14420642,-0.12079987,-0.13564627,0.22375368,0.011033906,-0.16897203,-0.27272975,-0.2946073,-0.39288113,-0.07457911,0.050131936,0.1587392,-0.23951347,-0.4462792,-0.00813147,0.122899696,0.085409954,0.1034884,-0.13385586,-0.44591707,0.123458914,-0.14613794,0.14041887,-0.08614839,-0.37558913,-0.0670324,0.1577393,-0.3992624,-0.022558805,-0.20951732,0.01884313,-0.014958284,0.106426306,0.047955975,-0.21645679,0.2159439,0.3790646,0.37232578,0.18207213,0.15379255,-0.29359865,0.13663694,-0.22295028,0.58794916,0.12641938,-0.24836583,0.2777208,0.2194129,-0.24697402 31 | -0.23230602,0.20861447,-0.11433625,0.07764619,0.15416235,0.40307674,-0.3154626,-0.04467671,-0.3230111,0.24939263,-0.034038223,0.40427387,-0.23861946,-0.17448159,-0.13183223,-0.2119663,0.17012005,-0.06961578,0.2665249,0.38915423,-0.008527852,-0.37088138,-0.05742404,0.036122367,-0.21822008,0.021451382,-0.25558743,-0.27446923,0.14287362,0.19868003,-0.0640674,0.0248323,-0.16431777,-0.20899738,-0.018006777,0.228,-0.18009098,0.10909481,0.110601895,0.06381197,-0.066313066,-0.04089332,-0.08391364,0.31435087,0.2422254,0.29084826,-0.097403266,0.29778105,0.03838174,-0.26327312,0.041188933,0.13886611,0.13388887,-0.06511627,0.39094794,-0.059921104,-0.107919976,0.019417299,-0.066965126,0.1699615,0.14153406,0.12589182,-0.2874142,0.012714603,-0.06379381,0.15804243,0.19335085,0.084740505,0.10956525,0.35741928,0.23236945,0.17819285,0.037545763,-0.16408141,0.3070582,-0.306411,-0.21051793,-0.28724435,0.16276324,-0.09586733,-0.07984814,-0.1192385,-0.13930136,0.30725044,-0.14569673,0.2971356,0.2554418,0.008514287,-0.07056997,-0.01218272,0.22400945,-0.010442601,0.10016487,0.07872528,0.34484714,0.11480925,-0.3270133,0.11407345,0.22306973,0.10281986,-0.31403166,0.11782146,-0.15057433,-0.17582078,0.022426728,0.033161536,-0.10698477,-0.049414966,-0.05724056,-0.017478725,-0.029416585,-0.19159225,0.2412287,0.22839172,-0.30449158,-0.017117932,-0.08956076,0.24606284,-0.25495857,0.11560053,-0.06711983,0.05811486,0.020284485,0.16812445,0.10582477,-0.331402,0.3956631,0.30725166,0.18063222,-0.017396351,0.26781952,-0.023049194,0.18391848,-0.009196101,-0.05380225,-0.15348645,0.19157533,-0.3834352,0.003284641,-0.090098456,0.24108346,-0.22180377,0.11942216,-0.2767929 32 | -0.23008543,0.21513703,-0.12519038,0.06006543,0.15909408,0.41723695,-0.32240957,-0.047825195,-0.32131395,0.23010975,-0.03669786,0.4092422,-0.23086509,-0.18309538,-0.13962041,-0.21044527,0.18138102,-0.072800584,0.25222293,0.39451718,-0.004471795,-0.37296867,-0.052607857,0.03889076,-0.21343446,0.019255264,-0.26523656,-0.2724399,0.14514934,0.19453569,-0.06818095,0.03211708,-0.16641639,-0.1943929,-0.029825209,0.234864,-0.16569684,0.11630755,0.089561425,0.08882752,-0.07714287,-0.028751267,-0.06772382,0.30403703,0.2561994,0.31491253,-0.08285805,0.30856878,0.040538076,-0.2766025,0.046556875,0.1524783,0.14859655,-0.044414327,0.41601908,-0.07583078,-0.12803946,0.00504081,-0.07668876,0.18484469,0.1516949,0.12562536,-0.30378762,0.007114881,-0.04404436,0.14420813,0.17071503,0.08039814,0.09747619,0.36859652,0.2551885,0.16365495,0.03541542,-0.16280966,0.2938815,-0.3031455,-0.19469783,-0.28830782,0.15486796,-0.068900876,-0.056058694,-0.11369041,-0.1354791,0.30303878,-0.12180323,0.32555664,0.25693884,0.026500992,-0.05036341,0.006167653,0.22088984,-0.032333516,0.11077772,0.07649122,0.35621065,0.130158,-0.33105505,0.120387375,0.2334108,0.08867124,-0.32130942,0.09601887,-0.17086273,-0.20892695,0.03208825,0.039495315,-0.101132646,-0.067669235,-0.06846133,-0.007785244,-0.02637137,-0.19367981,0.24281874,0.24143918,-0.3227623,-0.021597788,-0.08938521,0.23621805,-0.2597216,0.1032123,-0.063898906,0.05586351,0.00337384,0.17824681,0.09726471,-0.33688772,0.393035,0.30448583,0.1721935,-0.012153609,0.29071134,-0.008911504,0.18526097,-0.008446889,-0.049783617,-0.1536498,0.18386559,-0.38556883,0.022357747,-0.10773668,0.24214989,-0.2182983,0.12784,-0.28500682 33 | -0.12937978,0.22288981,-0.041871924,-0.23148024,0.16763377,0.37869883,-0.23244308,-0.05254069,-0.2154987,-0.054051086,-0.097643256,0.23796222,0.3197727,-0.07481903,0.1571807,-0.12477918,0.14634827,-0.21173671,-0.21765283,-0.07865721,0.3566139,0.08014298,-0.06336575,0.15555148,0.010757931,-0.12510109,0.061609503,-0.09514684,0.23422605,-0.11485337,-0.06893922,0.2500399,-0.04727394,0.060616594,-0.066952415,0.41952258,0.37167984,-0.16294257,-0.47761658,0.4962382,-0.100281306,0.16882709,0.32988086,-0.32920855,-0.07755661,0.42090136,0.37428063,0.19190261,0.03698638,-0.0657307,0.12756538,0.26998293,0.13259181,0.41131264,0.24105631,-0.3440334,-0.07931824,0.03861686,-0.1227766,0.02550858,0.34973866,0.21353947,-0.13197969,0.122463316,0.109192856,-0.15858603,-0.38491964,-0.000596695,-0.07758877,0.38281882,0.24285635,-0.075911045,0.07129246,-0.039396115,-0.07035076,0.18753229,0.30020782,-0.10891744,-0.28275323,0.39480585,0.10437301,-0.045285925,0.13985044,-0.036409672,0.32922187,0.24099489,0.38272482,0.33139655,0.3146623,0.21814252,0.026061328,-0.5289239,0.10215623,0.01743574,0.2941588,0.13605747,-0.12623695,-0.12881547,0.22398941,6.84E-05,-0.15270644,-0.25903878,-0.2968585,-0.38861662,-0.07142912,0.047716986,0.15838772,-0.2417856,-0.43960735,-0.001675818,0.12430088,0.08432003,0.10531361,-0.13532707,-0.43767598,0.12678318,-0.15167573,0.12879564,-0.09694079,-0.36877078,-0.06272734,0.16210723,-0.40163743,-0.012240263,-0.20350741,0.012727372,-0.010251528,0.10441169,0.040821616,-0.2186835,0.21447724,0.37775603,0.35611033,0.17106944,0.15424381,-0.27619958,0.13038796,-0.22501996,0.5902669,0.116477974,-0.23941807,0.28267977,0.21291015,-0.24928956 34 | -0.11801252,0.21671577,-0.039778505,-0.22283152,0.15236472,0.3802447,-0.21635903,-0.047303088,-0.21641615,-0.035025537,-0.100695744,0.23117238,0.30631033,-0.073332384,0.14590667,-0.1204463,0.14651102,-0.20878497,-0.20112672,-0.069593005,0.3573268,0.081564516,-0.058524087,0.14461964,0.008760535,-0.12277548,0.059974644,-0.09756278,0.23827858,-0.10272539,-0.061340615,0.23862782,-0.048752446,0.049010552,-0.066178836,0.4134305,0.361208,-0.1571464,-0.46307442,0.4952374,-0.109203786,0.16901913,0.3280783,-0.32865554,-0.062501416,0.41921356,0.37591186,0.19253024,0.047254816,-0.076926015,0.12253726,0.2583064,0.1300153,0.4164725,0.24644794,-0.34456939,-0.08199114,0.04073572,-0.12583376,0.023223938,0.35361233,0.22333013,-0.14225937,0.13151546,0.109103,-0.16127013,-0.38484743,0.012725559,-0.078194626,0.3974736,0.24344063,-0.07860806,0.07996476,-0.04045765,-0.07176502,0.19715087,0.31023502,-0.11375864,-0.27786607,0.3872298,0.102341324,-0.047769226,0.14071833,-0.044772252,0.3260824,0.2598915,0.37904587,0.3333194,0.30789095,0.20634189,0.033374052,-0.53646004,0.10422125,0.015702069,0.30621523,0.14112072,-0.12242653,-0.12462999,0.22558765,-0.001638508,-0.1641863,-0.26362956,-0.2919107,-0.3868495,-0.06532139,0.05256549,0.1573086,-0.23306778,-0.44141075,-0.012724869,0.11372999,0.089105405,0.10531661,-0.13192415,-0.43622482,0.12317709,-0.14827907,0.12695348,-0.092152454,-0.3675349,-0.06758755,0.14985088,-0.3930805,-0.01709418,-0.20191121,0.013841898,-0.01447572,0.10096253,0.047607753,-0.21288234,0.20913847,0.37481546,0.35574844,0.17619993,0.15019266,-0.27809942,0.13493803,-0.21821898,0.5810436,0.12267589,-0.23028056,0.2783914,0.21152218,-0.23727006 35 | -0.14274108,0.23744483,-0.050690528,-0.23801456,0.1714566,0.403803,-0.23965308,-0.054280274,-0.22753918,-0.048030525,-0.113116354,0.2347272,0.30969003,-0.07812788,0.14245972,-0.12958929,0.16794604,-0.22999425,-0.20418534,-0.05726193,0.35688198,0.065422386,-0.050489523,0.15691933,0.008234809,-0.13141976,0.03566903,-0.09661703,0.23630321,-0.10846834,-0.06998254,0.24358477,-0.06036994,0.07216093,-0.074393764,0.42655134,0.3776371,-0.16624722,-0.49068296,0.5086543,-0.11303559,0.17246516,0.33652112,-0.32514,-0.062401783,0.43744048,0.38124403,0.20400007,0.038384963,-0.09017213,0.12989478,0.27140197,0.14415023,0.43097275,0.26314202,-0.3559255,-0.09747944,0.01903873,-0.13078244,0.034454364,0.3562705,0.22139,-0.15211867,0.1325969,0.12632093,-0.16496968,-0.3949038,0.013285425,-0.07958128,0.42243582,0.25704306,-0.07494315,0.06937069,-0.05137448,-0.07577615,0.19019505,0.31473684,-0.12388941,-0.28602323,0.41031924,0.12617841,-0.044749007,0.141623,-0.026578296,0.33429307,0.276969,0.39381576,0.34732696,0.32192063,0.23430271,0.038053755,-0.5477327,0.10462605,0.016533704,0.33180857,0.1513935,-0.14224485,-0.13118419,0.24453048,-0.005002569,-0.17155005,-0.26692718,-0.30559957,-0.4119489,-0.062367145,0.04705716,0.16249847,-0.24487157,-0.44557112,-0.005465273,0.12617958,0.09174025,0.11763825,-0.12326125,-0.45850325,0.12098635,-0.15101174,0.13029267,-0.113900244,-0.3787033,-0.06909885,0.15713899,-0.41020545,-0.009131599,-0.20916747,-0.002423751,-0.009622461,0.1218475,0.039829526,-0.21816595,0.23211241,0.3770781,0.37038374,0.17431608,0.15985441,-0.2958872,0.1437925,-0.24522884,0.6078181,0.10339502,-0.23513485,0.27744633,0.21812113,-0.2635331 36 | -0.13318555,0.2373673,-0.050623532,-0.22743134,0.15579611,0.40940428,-0.23114742,-0.053401634,-0.22946583,-0.02811034,-0.101230286,0.2363606,0.30449858,-0.08351912,0.14009602,-0.13862014,0.15695657,-0.21708617,-0.20189233,-0.066875845,0.3541984,0.06950859,-0.058183122,0.14506844,-0.006207008,-0.11874178,0.0489773,-0.109050944,0.24430418,-0.10495073,-0.06891264,0.2530591,-0.055895977,0.05212855,-0.064953804,0.4289052,0.3613324,-0.15213534,-0.4669923,0.5032998,-0.102376856,0.1705074,0.32657197,-0.32510716,-0.07293189,0.42091465,0.37741214,0.19600898,0.04013398,-0.08712893,0.13517421,0.27195054,0.1361786,0.4223509,0.25517604,-0.35996425,-0.0913639,0.0423936,-0.117831826,0.04053959,0.35983336,0.22323436,-0.14312473,0.13984272,0.1096368,-0.15612975,-0.3738184,0.005894075,-0.0737534,0.39580408,0.2529325,-0.06346218,0.08109416,-0.041246917,-0.060999207,0.1939573,0.3072698,-0.117596984,-0.28226936,0.3916073,0.10243688,-0.050318547,0.13861051,-0.03732157,0.32718956,0.25463024,0.3827562,0.3296532,0.30425522,0.21790715,0.030962007,-0.5270367,0.103422366,0.008578535,0.31098157,0.13690178,-0.13870868,-0.12994225,0.23604776,-0.000879792,-0.17894426,-0.26682255,-0.2907071,-0.38455814,-0.07033954,0.05394443,0.15526336,-0.24391471,-0.43813947,-0.008354657,0.11294,0.07634196,0.11910894,-0.1186382,-0.45265496,0.11487634,-0.1477144,0.145324,-0.09556568,-0.35200828,-0.06978942,0.15517612,-0.3892745,-0.007323522,-0.19396652,0.006567651,0.000636953,0.12111048,0.05444518,-0.20683673,0.21678454,0.36418873,0.36531007,0.17627269,0.15742381,-0.28894487,0.13284232,-0.23804554,0.585117,0.1093268,-0.22617915,0.26759383,0.2212664,-0.24519251 37 | -0.13047938,0.22174935,-0.042162344,-0.23276031,0.14891861,0.38718286,-0.21360378,-0.04992699,-0.2222674,-0.038512707,-0.10764821,0.222197,0.2977349,-0.07511084,0.13162799,-0.11869638,0.15833168,-0.20317355,-0.20580705,-0.069335096,0.34647673,0.07876476,-0.043950237,0.13848226,0.001372853,-0.11911035,0.032627344,-0.10977969,0.23375466,-0.09516253,-0.06171508,0.24724244,-0.0520818,0.04882837,-0.072079696,0.41365752,0.35984194,-0.14915614,-0.45515844,0.48345459,-0.09848799,0.17372352,0.31462917,-0.3087078,-0.058398318,0.40889388,0.36315447,0.1965243,0.03896966,-0.086444475,0.12585633,0.26770326,0.13019687,0.41287336,0.25231358,-0.3367435,-0.09473067,0.035066318,-0.11424335,0.03113518,0.34664172,0.21301179,-0.15081157,0.12902398,0.11762707,-0.1519006,-0.3687318,0.008088084,-0.081766985,0.40727797,0.2561839,-0.06460373,0.071749225,-0.05013569,-0.06292321,0.18392605,0.30377355,-0.113822125,-0.27888262,0.3862623,0.09775065,-0.033647884,0.13695934,-0.029956125,0.32185745,0.2540431,0.3782176,0.33485746,0.31093648,0.21630786,0.04113145,-0.5382945,0.10885358,0.020714277,0.32400134,0.14397958,-0.1299644,-0.12553354,0.23354527,0.001772616,-0.16758567,-0.26159117,-0.30283883,-0.39097536,-0.06391539,0.048379514,0.160982,-0.23648863,-0.43245706,-0.010013317,0.121963546,0.08332262,0.113376684,-0.12853889,-0.4472331,0.10651899,-0.14519477,0.13985519,-0.09897825,-0.36075598,-0.06488132,0.16055419,-0.38630643,-0.016811661,-0.20481937,0.007097758,-0.006970179,0.11617432,0.05673737,-0.21123897,0.2192268,0.38290498,0.37100986,0.17743859,0.15935884,-0.2973242,0.14374906,-0.22388753,0.5912806,0.10358285,-0.23258403,0.2670497,0.21450923,-0.25271899 38 | -0.2261358,0.21072495,-0.12181652,0.06720854,0.14844933,0.41381776,-0.31879362,-0.04076442,-0.31445003,0.23944001,-0.029528216,0.3970947,-0.23383841,-0.17251776,-0.1353259,-0.21272571,0.16989037,-0.06978651,0.26323664,0.38147146,-0.00033873,-0.37229598,-0.05795394,0.027031928,-0.21461466,0.023847543,-0.24882653,-0.26371035,0.13180238,0.1917984,-0.051478226,0.03332057,-0.16383226,-0.20326029,-0.03063263,0.2370508,-0.17088011,0.10769677,0.0974961,0.089060545,-0.079654746,-0.03515046,-0.07612267,0.30160114,0.24476846,0.30513638,-0.08351569,0.3038954,0.03146761,-0.25755325,0.03824264,0.14507511,0.14785363,-0.047156427,0.40610027,-0.06873997,-0.11356566,0.019335238,-0.07533263,0.17124867,0.14535756,0.11166362,-0.28752646,0.00787823,-0.047928166,0.1443405,0.17504595,0.077483706,0.10243038,0.3562999,0.24688342,0.16423956,0.040598344,-0.16093662,0.2928923,-0.2991401,-0.1999089,-0.27951548,0.15289664,-0.07928584,-0.054260723,-0.10833962,-0.12794839,0.288053,-0.13017583,0.30541337,0.25741532,0.020927189,-0.050864264,-0.003232929,0.22368978,-0.023086362,0.10393184,0.083104335,0.3498929,0.13158113,-0.3187979,0.1162091,0.22483164,0.09243343,-0.30128738,0.102176845,-0.15438409,-0.18071422,0.03667941,0.038262747,-0.1022005,-0.067515194,-0.06423392,-0.010869951,-0.030451385,-0.18274957,0.22884867,0.22379646,-0.3139233,-0.018844638,-0.090794414,0.23756087,-0.2578566,0.10756033,-0.062092844,0.065319225,0.004235899,0.16478515,0.096957885,-0.3209551,0.37447432,0.2972999,0.17574206,-0.01817922,0.2733218,-0.01872073,0.18043713,-0.01218728,-0.04340713,-0.15564634,0.18319589,-0.3742626,0.022400226,-0.09556029,0.22622047,-0.2083231,0.13071823,-0.2633706 39 | -0.22530067,0.2001849,-0.118104346,0.06928334,0.15112802,0.41729316,-0.30662066,-0.041055214,-0.32219183,0.24620318,-0.040435333,0.41011453,-0.23469475,-0.17658952,-0.13735852,-0.20065519,0.18040894,-0.072033666,0.26496932,0.3947323,0.002847498,-0.38707826,-0.053666715,0.036803763,-0.22263505,0.007723609,-0.2697222,-0.27671224,0.14096387,0.20495975,-0.062771186,0.04045601,-0.17347325,-0.21170682,-0.027455093,0.23816758,-0.17898004,0.107944265,0.09837781,0.07360307,-0.07885991,-0.033291165,-0.07996256,0.3045974,0.24202144,0.29627097,-0.08303951,0.30577946,0.03944418,-0.26977396,0.045278985,0.15699324,0.15624867,-0.05555303,0.40907857,-0.060737427,-0.112844944,0.011532115,-0.070490785,0.18006086,0.15695529,0.12621658,-0.30165958,0.007996754,-0.038502123,0.1511448,0.17613022,0.091245025,0.11259126,0.37641332,0.25163427,0.17414853,0.03871106,-0.16568807,0.30623645,-0.31982952,-0.19892676,-0.29274052,0.1757492,-0.07715962,-0.0509691,-0.12052428,-0.14248674,0.311948,-0.12782833,0.31409162,0.25264952,0.024282165,-0.061809044,-0.001277928,0.23179376,-0.030634515,0.10488902,0.09068105,0.37226504,0.13914436,-0.34269542,0.12140299,0.24202903,0.10761694,-0.3278803,0.11157272,-0.163564,-0.18798754,0.048906397,0.04218888,-0.097717,-0.062460374,-0.065811284,-0.018162476,-0.037749697,-0.19375013,0.24506782,0.24513805,-0.3169928,-0.021263404,-0.08709796,0.2456579,-0.265906,0.10778919,-0.07708787,0.053369552,-0.001053754,0.17677346,0.108222745,-0.3298986,0.3989778,0.30866262,0.18595684,-0.015384187,0.2748791,-0.0234106,0.20411538,-0.013225933,-0.05483279,-0.16728935,0.19937016,-0.39048055,0.023280067,-0.10334248,0.2377717,-0.22802103,0.14194387,-0.2830594 40 | -0.24851929,0.21743163,-0.12971304,0.057973206,0.15963136,0.42794305,-0.33365554,-0.037513327,-0.32183006,0.23708712,-0.04395496,0.405379,-0.21601468,-0.18706957,-0.13306351,-0.20558032,0.18661298,-0.07820418,0.26074132,0.39800048,0.004609816,-0.37477905,-0.058097202,0.037595745,-0.20886035,0.013993515,-0.26864406,-0.25267398,0.13433637,0.18874472,-0.059439573,0.04480346,-0.17751987,-0.1838704,-0.028672593,0.25090432,-0.15305682,0.09479893,0.06681682,0.1018094,-0.09082597,-0.012421322,-0.055415854,0.2782116,0.24141018,0.3054053,-0.06658472,0.3127772,0.027819159,-0.26724732,0.048538096,0.14944702,0.14758064,-0.034594513,0.40286613,-0.07574868,-0.12160334,0.005491411,-0.08201255,0.1759827,0.15867776,0.11366759,-0.29926556,0.014192044,-0.027555026,0.1431831,0.15233634,0.086244985,0.09058512,0.37638858,0.24886629,0.16450816,0.03388916,-0.16598664,0.2831844,-0.2973828,-0.18454339,-0.27660492,0.16220959,-0.052648798,-0.036821354,-0.10579261,-0.13427778,0.28852108,-0.10888022,0.32704782,0.26193276,0.04557308,-0.03874803,0.008852807,0.22036944,-0.036188476,0.09671753,0.085663885,0.35653734,0.1316466,-0.33039024,0.11210806,0.24560022,0.090346746,-0.31532744,0.08608173,-0.17365931,-0.2087463,0.049292352,0.039917283,-0.09954775,-0.06285942,-0.07946688,-0.00724247,-0.034394637,-0.18664908,0.23317066,0.23363803,-0.3215231,-0.018393308,-0.08999157,0.23735152,-0.26039013,0.08399844,-0.06870044,0.0598702,-0.003456247,0.17269447,0.08829348,-0.32358462,0.37664872,0.31762567,0.17661113,-0.01569502,0.29354048,-0.001669391,0.19475955,-0.002385316,-0.05207294,-0.17080703,0.18776438,-0.3906186,0.047177777,-0.10583659,0.23956549,-0.20333171,0.13448215,-0.2829147 41 | -0.22580421,0.2037533,-0.12303167,0.060846005,0.14845763,0.40376055,-0.3066236,-0.037878085,-0.32330424,0.23436508,-0.030634345,0.40810898,-0.22421288,-0.17106836,-0.13172077,-0.21231033,0.17514634,-0.07581279,0.25607783,0.38730726,0.006230298,-0.3723245,-0.05988013,0.039907996,-0.21369413,0.011797836,-0.2598605,-0.26639053,0.13520008,0.19451034,-0.052045308,0.038101867,-0.1607267,-0.18768653,-0.027194057,0.23109715,-0.15924944,0.09834919,0.080100924,0.08930629,-0.07585184,-0.029014088,-0.06587151,0.29322597,0.24861479,0.30312508,-0.07762585,0.30835134,0.034106124,-0.256487,0.04553954,0.15001468,0.15318671,-0.04159046,0.41311985,-0.07766833,-0.11145684,0.006584264,-0.07723718,0.18513668,0.14210926,0.117852025,-0.30004096,0.009370813,-0.035066284,0.1473589,0.16589575,0.08697875,0.110946074,0.3724778,0.25226974,0.1731694,0.04155009,-0.16468978,0.28965542,-0.30069888,-0.19795687,-0.28836587,0.15397611,-0.07674896,-0.049633443,-0.11551674,-0.13257141,0.2962349,-0.11813617,0.3148849,0.259216,0.031785622,-0.05397351,-0.001864973,0.22255455,-0.030860752,0.102793105,0.07870803,0.3525657,0.13194895,-0.32276738,0.11351767,0.2382668,0.09414495,-0.32561123,0.10489103,-0.16697934,-0.2023744,0.0387142,0.04417413,-0.10593366,-0.05798579,-0.06668879,-0.01042158,-0.037348725,-0.18353312,0.23945266,0.23948878,-0.3215478,-0.013193478,-0.0936429,0.2377301,-0.26593614,0.097218186,-0.07254916,0.05506022,0.003430348,0.17492762,0.09321097,-0.33816358,0.39645013,0.31385326,0.17685843,-0.00633905,0.28177655,-0.014975896,0.19684611,-0.005450215,-0.05332197,-0.16739477,0.19532189,-0.3891633,0.036155235,-0.09969826,0.24677785,-0.22208449,0.14017561,-0.28886688 42 | -0.23409216,0.20516877,-0.1211115,0.075038634,0.15262718,0.42387098,-0.3298941,-0.046973582,-0.32509902,0.25019228,-0.046428077,0.40737706,-0.23729254,-0.18382353,-0.14455464,-0.2070255,0.17718509,-0.06966844,0.2582999,0.39895043,-0.004519886,-0.3884565,-0.05672105,0.032147948,-0.2189993,0.015586076,-0.27040994,-0.27248037,0.13900897,0.19662401,-0.055656303,0.04071851,-0.17010106,-0.19516541,-0.034316167,0.24915922,-0.175885,0.1121855,0.08906381,0.09221352,-0.081403784,-0.026684908,-0.08082245,0.30476496,0.25500923,0.3176603,-0.0881833,0.31907487,0.032394327,-0.28025618,0.04006166,0.15546526,0.16037826,-0.040675797,0.42207265,-0.06342992,-0.12267729,0.010005007,-0.07227711,0.18595448,0.15882686,0.11971811,-0.2995461,0.013080658,-0.05038048,0.15915741,0.18013333,0.08149329,0.10745285,0.3858536,0.2520396,0.17419101,0.037268884,-0.1657763,0.30914438,-0.31198338,-0.2057488,-0.29013303,0.1739045,-0.074629895,-0.055611096,-0.11504283,-0.13755405,0.3071362,-0.12478812,0.31574816,0.26376978,0.03669212,-0.05552361,0.004130549,0.22922806,-0.02137302,0.11158105,0.08513458,0.36594754,0.13694999,-0.34007677,0.12097866,0.23775178,0.107266895,-0.32989565,0.10542024,-0.15824941,-0.20470995,0.039814968,0.045517925,-0.100167036,-0.062721394,-0.07615314,-0.010287608,-0.038094047,-0.19820713,0.25381774,0.23806463,-0.32506272,-0.024059266,-0.087057576,0.2517143,-0.27054656,0.10212638,-0.06756755,0.058690224,0.009244978,0.1770864,0.101750374,-0.33841148,0.40532556,0.31645155,0.19246344,-0.013694835,0.29072496,-0.013905769,0.19448029,-0.008946063,-0.055412572,-0.1567073,0.19263723,-0.40416056,0.024773214,-0.10208997,0.2421854,-0.22641532,0.1357377,-0.28849465 43 | -0.23231538,0.21746875,-0.11524106,0.06920022,0.16021395,0.4354725,-0.32987028,-0.049550697,-0.34012142,0.24327727,-0.038680952,0.43160334,-0.24058206,-0.19192553,-0.13556923,-0.21670422,0.18935825,-0.075844996,0.27464393,0.40825632,0.004326832,-0.3974,-0.062437877,0.035201512,-0.21496603,0.018249638,-0.27278256,-0.28549266,0.14437374,0.20605263,-0.070421904,0.040025882,-0.17109539,-0.20463997,-0.025756191,0.24702118,-0.18286195,0.1161436,0.091401145,0.09127095,-0.08279292,-0.030341163,-0.071542524,0.30733064,0.26772898,0.32663783,-0.08609357,0.32499665,0.040360488,-0.28233802,0.046643842,0.16408513,0.16024344,-0.044141024,0.43588123,-0.075234525,-0.13141513,0.005732459,-0.079650454,0.19707027,0.1544981,0.12506719,-0.30873555,0.00606531,-0.045122672,0.1616543,0.1819404,0.09208923,0.1088659,0.39848644,0.26897007,0.18155189,0.03597204,-0.16132697,0.31925458,-0.33400375,-0.2025815,-0.29786545,0.16679135,-0.08278179,-0.053611346,-0.12533781,-0.14378302,0.3151697,-0.14262484,0.33353496,0.27529436,0.030973595,-0.059996434,0.007769737,0.24127012,-0.031010019,0.10906307,0.08359086,0.3719452,0.14319187,-0.3502067,0.12099952,0.24257545,0.09894233,-0.32914725,0.11616778,-0.16756676,-0.2070768,0.03876902,0.04613555,-0.11536949,-0.06262327,-0.0739767,-0.009695254,-0.040404473,-0.20455734,0.2576207,0.25134715,-0.3396205,-0.017122386,-0.09336384,0.25995615,-0.27938685,0.1040819,-0.0782413,0.0628365,0.003997103,0.18536529,0.10489181,-0.3507001,0.42073965,0.32815966,0.19417101,-0.007874862,0.3009973,-0.01827336,0.18885253,-0.017549627,-0.047876243,-0.16819431,0.19779797,-0.41294232,0.025374994,-0.103656225,0.25709403,-0.23471664,0.13652213,-0.29937893 44 | -0.24541649,0.2247255,-0.12575705,0.060113665,0.17062554,0.43971124,-0.33284563,-0.051866684,-0.34283325,0.24666612,-0.056093123,0.43400896,-0.22196266,-0.18914825,-0.13423416,-0.21278904,0.18952362,-0.08200461,0.2620665,0.40590852,0.014139491,-0.39183939,-0.05625161,0.042256508,-0.20467106,0.011783183,-0.27840444,-0.2822582,0.15229613,0.20918237,-0.06837896,0.037218824,-0.18673345,-0.19524062,-0.028680082,0.25597888,-0.16653353,0.11009902,0.06710979,0.10232855,-0.08882545,-0.020915678,-0.063865155,0.2952352,0.2701752,0.33493945,-0.06700389,0.3267289,0.040013943,-0.29690456,0.051414005,0.16426653,0.16631211,-0.03341286,0.43112347,-0.07775273,-0.13117203,0.004693857,-0.09045928,0.18786018,0.17045894,0.12891942,-0.3167354,0.016069585,-0.03410731,0.15090513,0.15272945,0.08808232,0.1070633,0.39684597,0.26797315,0.16086064,0.033591617,-0.1606536,0.29032767,-0.3104607,-0.19971856,-0.29351842,0.16024856,-0.060833342,-0.035722032,-0.11955761,-0.13287139,0.31113675,-0.116776764,0.34915477,0.27807298,0.037863113,-0.050211888,0.011018278,0.22836098,-0.04618608,0.11027988,0.09057544,0.38517937,0.13856193,-0.35055116,0.11530066,0.25641227,0.09885247,-0.32825983,0.097201616,-0.18341038,-0.22884062,0.04336155,0.046539124,-0.100470975,-0.0772815,-0.09096126,-0.01551762,-0.036340673,-0.19608237,0.25074956,0.24007024,-0.34965792,-0.020619424,-0.09100693,0.24121131,-0.2723122,0.07788479,-0.07358431,0.06839077,-0.008748837,0.18122274,0.08176078,-0.3393114,0.40681857,0.33214885,0.1829464,-0.014127575,0.3033463,-0.000693485,0.21540211,-0.001889859,-0.050350815,-0.1793928,0.1995531,-0.41897824,0.04787874,-0.111113496,0.24638887,-0.22044131,0.13562967,-0.3121139 45 | -0.2299803,0.21498363,-0.11446221,0.06278521,0.15993223,0.42029557,-0.32069597,-0.041942548,-0.33500922,0.2454422,-0.037192408,0.4208448,-0.23517005,-0.17996795,-0.12452383,-0.21253671,0.18428004,-0.07488884,0.26966885,0.3998291,0.002961045,-0.37588325,-0.06277309,0.045548834,-0.21059385,0.015128805,-0.2590779,-0.2646094,0.14679109,0.19908172,-0.060092784,0.041261878,-0.16220264,-0.19650605,-0.023916464,0.23465894,-0.16711931,0.104227655,0.08351786,0.08877043,-0.08102884,-0.032382846,-0.07204125,0.3005167,0.2517297,0.2996973,-0.07856304,0.3077853,0.028541435,-0.2640099,0.03976841,0.145673,0.14191884,-0.04557952,0.4097092,-0.06118476,-0.11104475,0.014257714,-0.07368712,0.178088,0.14043064,0.12291097,-0.28659064,0.012609127,-0.039693095,0.14839607,0.1704048,0.08091554,0.106155306,0.363963,0.24965824,0.17498998,0.031101894,-0.15727735,0.2928901,-0.3005841,-0.18747406,-0.2828972,0.16160664,-0.07759174,-0.059685215,-0.11678316,-0.13839582,0.29330125,-0.12877546,0.31072965,0.25969708,0.030213224,-0.050089233,0.006893228,0.22440864,-0.034146614,0.10898433,0.08651338,0.3555903,0.13702449,-0.33274853,0.10086912,0.23618968,0.098211706,-0.31217858,0.10554626,-0.16301732,-0.19910789,0.028795032,0.047420613,-0.10161064,-0.06926857,-0.07597768,-0.007701955,-0.03368839,-0.19340354,0.23477226,0.22725482,-0.3177545,-0.010051117,-0.08210822,0.23481816,-0.2591439,0.09330327,-0.065258786,0.05383406,-0.004838689,0.17048278,0.085421845,-0.32263127,0.37497503,0.3087577,0.17336757,-0.019698765,0.2740791,-0.014852091,0.19313647,-0.004711009,-0.045524735,-0.15514234,0.19055776,-0.38147146,0.024338052,-0.093878865,0.23648444,-0.20408008,0.12707132,-0.28391373 46 | -0.24047065,0.22024632,-0.12586643,0.062492456,0.17139746,0.4392639,-0.3258767,-0.04085459,-0.3306363,0.23898254,-0.045080107,0.427779,-0.23416622,-0.18246974,-0.1363397,-0.2106687,0.1901506,-0.08349894,0.26180792,0.39835662,0.003234723,-0.38493127,-0.058903374,0.035348587,-0.20664923,0.009299417,-0.27074313,-0.27643552,0.1413263,0.20444764,-0.06094194,0.0442716,-0.17144085,-0.20191243,-0.028052213,0.25327933,-0.15907645,0.11260665,0.078041956,0.09901382,-0.086489506,-0.02961964,-0.0672613,0.29382014,0.25953403,0.32752362,-0.07777215,0.3069021,0.03433227,-0.28339705,0.040770404,0.15806416,0.1591191,-0.042601585,0.4196203,-0.07340335,-0.121440165,0.004658617,-0.076754734,0.18200877,0.14963563,0.12963112,-0.29709104,0.006264096,-0.032980278,0.14732653,0.16213301,0.0875977,0.11058356,0.38869768,0.26304466,0.16272864,0.03419162,-0.16480166,0.29003713,-0.3093551,-0.19482927,-0.29020438,0.16186278,-0.06932218,-0.045538545,-0.115771316,-0.1364794,0.31092504,-0.11120976,0.33751458,0.26983133,0.039148267,-0.049640078,0.010051077,0.23590556,-0.044533398,0.108665384,0.077527516,0.37785763,0.14527564,-0.34554252,0.11688301,0.25525555,0.08992573,-0.33069465,0.09773751,-0.17482734,-0.21693932,0.04822753,0.04430848,-0.09743355,-0.07639398,-0.077700965,-0.016802348,-0.030100701,-0.18847157,0.2556598,0.2442405,-0.3337033,-0.020836137,-0.08860548,0.24010211,-0.27582112,0.08449426,-0.07122402,0.06150591,-0.005096882,0.18309435,0.09079681,-0.3388727,0.3964828,0.31713843,0.17713307,-0.015913064,0.29181132,-0.010777425,0.20267893,-0.011721927,-0.046037756,-0.16905612,0.19579574,-0.39809164,0.042308718,-0.10925862,0.24530907,-0.22050229,0.14066611,-0.29874215 47 | -0.23675388,0.21155453,-0.121902704,0.06158541,0.17377545,0.43120906,-0.3245715,-0.0455478,-0.3379639,0.25034264,-0.04204174,0.42396015,-0.23799017,-0.17970015,-0.14349489,-0.21372028,0.18804687,-0.07939201,0.25962663,0.40945154,0.005196546,-0.39014766,-0.05686694,0.049381036,-0.19669281,0.008320988,-0.25509003,-0.27951288,0.13761213,0.20682348,-0.06795819,0.030899707,-0.17072707,-0.20576857,-0.021108137,0.23775916,-0.17149912,0.1150054,0.081576444,0.07994622,-0.08540963,-0.0345533,-0.07392354,0.30142787,0.26542565,0.32472882,-0.08985971,0.31679618,0.03652005,-0.27964148,0.04146389,0.15610139,0.14386784,-0.04963024,0.42175066,-0.06612133,-0.1178201,-0.000735451,-0.0874525,0.18230869,0.15066509,0.13291237,-0.29924652,0.010651804,-0.04509704,0.14680049,0.16859227,0.092848144,0.11008815,0.3879981,0.24887383,0.17214546,0.036377467,-0.16263406,0.301283,-0.3027224,-0.19091639,-0.2841252,0.16515046,-0.070566535,-0.05633005,-0.11592627,-0.13692667,0.3114113,-0.12140376,0.32348853,0.2676361,0.028425045,-0.063406095,0.00343938,0.226151,-0.031519763,0.10105526,0.08475258,0.36057442,0.12256146,-0.32541588,0.11469773,0.24274361,0.09547519,-0.31907317,0.1039833,-0.17828076,-0.21816657,0.03672858,0.043859802,-0.100972965,-0.07055961,-0.069866195,-0.013250042,-0.030995207,-0.19190158,0.23989457,0.23975599,-0.32700756,-0.011763987,-0.091686204,0.2446003,-0.27645025,0.08828519,-0.066828676,0.069390625,-0.002864886,0.1763209,0.08537363,-0.34024674,0.3915038,0.31349844,0.1796057,-0.024399182,0.29578823,-0.01214223,0.19707586,-0.012585424,-0.045646317,-0.16748914,0.19274026,-0.3922515,0.033871118,-0.102560915,0.24471924,-0.22255246,0.12957044,-0.28973734 48 | -0.22972716,0.20786954,-0.1159408,0.079363756,0.15472777,0.41839248,-0.3133989,-0.04034633,-0.3332117,0.24928191,-0.03889655,0.41952977,-0.22926788,-0.18245472,-0.14076012,-0.21581784,0.17756736,-0.070154734,0.26487234,0.39721185,0.00344493,-0.38863364,-0.05173678,0.044741597,-0.21451941,0.011374697,-0.26747504,-0.28466275,0.14774507,0.20975189,-0.07196899,0.034952275,-0.17859243,-0.20885691,-0.025626952,0.24144825,-0.17463031,0.10924736,0.088877656,0.080776066,-0.07925107,-0.029289098,-0.07339868,0.31265834,0.26451525,0.32151783,-0.078401424,0.3191851,0.039308134,-0.27246228,0.040985387,0.1564321,0.15586981,-0.03811506,0.42308217,-0.0700839,-0.124149345,0.007837452,-0.082658514,0.1777249,0.15948978,0.1233716,-0.30852467,0.003999386,-0.045022897,0.15523072,0.17259073,0.091981016,0.11099119,0.38869682,0.24824457,0.17508928,0.045610704,-0.16240416,0.305109,-0.31314504,-0.20638116,-0.2821408,0.159154,-0.08620793,-0.06778743,-0.12757313,-0.14203964,0.31182304,-0.13684128,0.30827832,0.2748709,0.028282909,-0.05614738,0.003929442,0.23270546,-0.031651024,0.11026262,0.08988497,0.35667804,0.13758366,-0.33024532,0.11194856,0.23113383,0.10550485,-0.3244657,0.1151461,-0.15445161,-0.1977765,0.024082297,0.03709211,-0.09868334,-0.06768238,-0.078270555,-0.0151598,-0.037450727,-0.2022977,0.2431252,0.24440415,-0.32678336,-0.010080083,-0.08240988,0.24675342,-0.2656515,0.09848132,-0.07050219,0.066145994,0.0065805,0.17464636,0.10326992,-0.33749688,0.3972426,0.302908,0.17254348,-0.017641848,0.2745901,-0.012673063,0.19014914,-0.009610006,-0.04201284,-0.1661513,0.18915458,-0.3900279,0.016450126,-0.099813506,0.23959194,-0.22854708,0.13918568,-0.2861477 49 | -0.22212675,0.20992227,-0.10964083,0.07501089,0.14401789,0.4006259,-0.31557104,-0.051043604,-0.31988773,0.2427128,-0.00649102,0.414746,-0.25052792,-0.1766082,-0.14102307,-0.21214642,0.15937336,-0.058674753,0.27117136,0.3951554,-0.021181718,-0.3775237,-0.06129353,0.03167053,-0.21681334,0.017549174,-0.24501777,-0.28167114,0.14732894,0.19864963,-0.064670704,0.024420213,-0.15207572,-0.21847329,-0.010466613,0.21685553,-0.20421515,0.112894595,0.12751731,0.057884194,-0.06698394,-0.050599787,-0.099143974,0.3210307,0.23903103,0.29585424,-0.12072726,0.2971444,0.039948635,-0.25842243,0.037455197,0.13741349,0.123050846,-0.06371006,0.39315385,-0.04449056,-0.09665912,0.02825609,-0.0646289,0.17067492,0.12355583,0.12120602,-0.2733053,0.007679801,-0.07384728,0.16233157,0.20870075,0.07832711,0.12931576,0.34296724,0.24178013,0.17867577,0.04446831,-0.14765038,0.31079194,-0.3219803,-0.21034078,-0.27727196,0.15159194,-0.104211256,-0.09172208,-0.11283534,-0.14873596,0.30901805,-0.14794959,0.2744974,0.25624296,0.002690006,-0.07195334,-0.010070222,0.22505485,0.000137875,0.10223458,0.08219691,0.33026037,0.11013595,-0.3227903,0.1074508,0.21622482,0.11567736,-0.31223208,0.12162544,-0.14805992,-0.16787629,0.012311906,0.04535315,-0.10682119,-0.05383191,-0.052435923,-0.004378049,-0.033300314,-0.20056495,0.23088169,0.23239203,-0.2919453,-0.012151121,-0.07773623,0.25569263,-0.25760424,0.13419536,-0.07395407,0.06595936,0.024411395,0.17792752,0.104475394,-0.32798114,0.40143093,0.29841948,0.18336609,-0.012145916,0.26564276,-0.029871948,0.1679554,-0.020318057,-0.04738407,-0.14127794,0.18701771,-0.38503456,-0.016432602,-0.08440467,0.25035688,-0.22301804,0.11262292,-0.26436806 50 | -0.22251937,0.20390746,-0.11622765,0.06407851,0.16110247,0.43623292,-0.32610002,-0.044772398,-0.3258635,0.24926527,-0.042991754,0.40957773,-0.22939809,-0.19028588,-0.13985735,-0.21724102,0.19281042,-0.07647362,0.25730288,0.40013242,-0.001827726,-0.39015007,-0.049435657,0.041402932,-0.21887627,0.018355945,-0.2769479,-0.2727613,0.14157249,0.20012084,-0.065070346,0.035055425,-0.17206465,-0.1965957,-0.035680715,0.24327093,-0.15573752,0.10729653,0.0818575,0.096332096,-0.08878422,-0.020286176,-0.06508378,0.29080746,0.2535667,0.3125162,-0.06813289,0.31938058,0.032008164,-0.27930886,0.05318786,0.15703988,0.16276902,-0.034532655,0.41944933,-0.07674832,-0.12095514,0.017260417,-0.082118765,0.19037013,0.1567536,0.12567356,-0.3050893,0.019613348,-0.03865987,0.14524013,0.1578316,0.09121229,0.09539649,0.3904367,0.25144324,0.16051942,0.031768534,-0.16425657,0.29329145,-0.3109925,-0.19959001,-0.28861493,0.16908135,-0.06235294,-0.04783975,-0.105886765,-0.13609214,0.30321184,-0.11945282,0.3267127,0.26213044,0.040577732,-0.04941325,0.000655226,0.2192002,-0.044575803,0.10900003,0.091481,0.3722547,0.14212273,-0.3323212,0.110243276,0.23903035,0.105120055,-0.3195658,0.09584244,-0.1768567,-0.20197424,0.049440548,0.048297428,-0.10446847,-0.07214326,-0.07678273,-0.02163343,-0.030089153,-0.19269495,0.2522608,0.2422785,-0.33091927,-0.016120195,-0.08538629,0.24065565,-0.2575246,0.09907277,-0.07175035,0.05798157,-0.00798804,0.16821313,0.09795737,-0.32947734,0.38918674,0.3201993,0.18394417,-0.011191512,0.28206465,-0.005391563,0.21053322,-0.008026792,-0.045088723,-0.164927,0.19568837,-0.397191,0.040546633,-0.10983711,0.23119915,-0.21640246,0.1383842,-0.28499323 51 | -0.23355769,0.20960714,-0.13175157,0.06885787,0.1710516,0.43442982,-0.32434556,-0.049100004,-0.33409727,0.24859272,-0.036521316,0.42481554,-0.23078789,-0.19298209,-0.13597082,-0.21370694,0.1789432,-0.08365921,0.26161638,0.39793283,-0.002228184,-0.38794786,-0.061771445,0.038791947,-0.22087051,0.010784623,-0.26562858,-0.29013556,0.15066457,0.21414803,-0.06281289,0.034120183,-0.17688435,-0.20821574,-0.02054122,0.24593504,-0.17168783,0.11483607,0.09068909,0.0939865,-0.07916426,-0.02770459,-0.077801205,0.31314602,0.26816735,0.338152,-0.079716615,0.32200536,0.047328204,-0.27833763,0.04456085,0.16774234,0.15807489,-0.041095976,0.43354747,-0.080463655,-0.1301639,0.010616535,-0.086896226,0.19312067,0.16739513,0.1238062,-0.31807142,0.008418716,-0.040345307,0.14777856,0.16585086,0.08900748,0.10873893,0.40178418,0.2547648,0.1618253,0.041314937,-0.1685924,0.3018,-0.30521452,-0.20166594,-0.2948409,0.15070635,-0.06363426,-0.048752386,-0.117317796,-0.13674416,0.3080184,-0.1149297,0.32940266,0.27194914,0.037417825,-0.051044427,0.006941021,0.2281246,-0.044004723,0.11124781,0.08438712,0.37921748,0.12823062,-0.3447402,0.10802527,0.24207416,0.10029484,-0.32536933,0.10262012,-0.16998307,-0.21613717,0.04135449,0.042593867,-0.10190251,-0.06534972,-0.082750715,-0.008527645,-0.03691398,-0.19959451,0.24784835,0.2395605,-0.34007454,-0.011676816,-0.09363982,0.23874551,-0.26602665,0.0810135,-0.07008829,0.065453656,-0.010332763,0.16737653,0.08993412,-0.33853465,0.40720966,0.30902806,0.17411773,-0.022340456,0.29713097,-0.011995393,0.19836177,-0.011188363,-0.042337194,-0.17999467,0.19423522,-0.40592024,0.04267052,-0.107042186,0.25074527,-0.21742974,0.1388046,-0.30329207 52 | -0.23595522,0.2074203,-0.12510875,0.068152554,0.148467,0.4258303,-0.32675523,-0.041792355,-0.31791142,0.24789725,-0.046703205,0.40214854,-0.23408294,-0.18413669,-0.14132053,-0.21197957,0.17971031,-0.08046226,0.2639121,0.39307415,0.006834515,-0.38052562,-0.054644603,0.030588217,-0.2152813,0.016568072,-0.26976657,-0.2713162,0.14039443,0.19975449,-0.053175602,0.04314993,-0.17094666,-0.19248094,-0.023157846,0.23467875,-0.17175874,0.10411265,0.08180741,0.09612772,-0.086634815,-0.03190127,-0.07468543,0.30250585,0.24813126,0.30708316,-0.07698868,0.30705053,0.036485337,-0.27308738,0.044786397,0.1609828,0.1614473,-0.05480043,0.41996384,-0.07626466,-0.12023422,0.012727221,-0.08363228,0.178817,0.16195497,0.117462024,-0.30667576,0.018003205,-0.03881638,0.14637938,0.1736559,0.09171162,0.10939991,0.3850667,0.24673048,0.17172146,0.03782277,-0.16099411,0.30013803,-0.3057808,-0.19837788,-0.28226143,0.1630556,-0.07825017,-0.04886358,-0.114562824,-0.14076045,0.3071109,-0.12109734,0.32390934,0.2610107,0.034321383,-0.05760675,0.006820045,0.22601783,-0.038018823,0.10025387,0.07679903,0.36830002,0.13430546,-0.33146337,0.12419248,0.24888071,0.093748085,-0.32957456,0.101293415,-0.17330268,-0.21224548,0.046606787,0.03970806,-0.09896569,-0.058183454,-0.07316231,-0.0230974,-0.031935133,-0.19554181,0.24906455,0.23803988,-0.31872323,-0.023203464,-0.08936947,0.24318027,-0.27028555,0.10178603,-0.07174641,0.05634938,-0.006022312,0.17759101,0.10417798,-0.3325505,0.39405656,0.32584903,0.18499334,-0.005318026,0.29840934,-0.020731447,0.19240606,-0.003105357,-0.04652741,-0.16862531,0.20104703,-0.3997043,0.039520573,-0.11336874,0.23794429,-0.23058383,0.13177094,-0.2880812 53 | -0.22936463,0.21579973,-0.11208745,0.06991688,0.1528757,0.4085808,-0.3143198,-0.034915973,-0.32900667,0.22900611,-0.03969955,0.4083512,-0.2188149,-0.17140475,-0.13336445,-0.20739512,0.17997585,-0.07384853,0.24696253,0.3759427,0.016324509,-0.36187223,-0.04772828,0.04680521,-0.19141173,0.010495154,-0.25339925,-0.258655,0.12949571,0.18854752,-0.071961805,0.037481308,-0.15850832,-0.19428223,-0.028523734,0.23724917,-0.15032764,0.09812448,0.06673591,0.09091052,-0.08818304,-0.018471073,-0.06359178,0.28064632,0.24737789,0.31077707,-0.074489094,0.31411242,0.03757414,-0.26113975,0.0368736,0.15406124,0.14750297,-0.03337101,0.42097947,-0.07844168,-0.117743745,0.001264588,-0.08439968,0.18161629,0.15340915,0.12916784,-0.2976723,0.006641971,-0.038962368,0.14081918,0.15603954,0.09048024,0.101509325,0.38189754,0.25240305,0.17391664,0.030129416,-0.16583692,0.29349735,-0.30105156,-0.17612486,-0.28100827,0.15297611,-0.07163126,-0.049047645,-0.116278395,-0.12940228,0.30436197,-0.12100781,0.32522485,0.27791908,0.03370131,-0.051036194,0.015169504,0.22538963,-0.04317373,0.1019983,0.086850554,0.36778438,0.1368613,-0.33308533,0.10175139,0.23845032,0.09748718,-0.3178759,0.10191786,-0.17035325,-0.20837934,0.041286875,0.033573482,-0.09657019,-0.06767361,-0.08252175,-0.020171205,-0.029697314,-0.19052054,0.23333497,0.23235945,-0.32080036,-0.003075072,-0.0828654,0.24470834,-0.26819822,0.082434006,-0.06648605,0.06131125,-0.000922187,0.16330035,0.09218217,-0.328955,0.37931013,0.31603822,0.17731385,-0.018529149,0.2977847,-0.011033354,0.19335799,-0.011356807,-0.042114355,-0.15592888,0.19619334,-0.38399658,0.04178104,-0.08889466,0.23466285,-0.21604005,0.12567528,-0.28393227 54 | -0.23470692,0.21970071,-0.12038292,0.064988844,0.1550374,0.4336522,-0.32923716,-0.039804872,-0.34489498,0.2505021,-0.048271585,0.42807534,-0.23593073,-0.18763708,-0.13824639,-0.21716802,0.17790249,-0.082634546,0.26310155,0.4012727,0.013948529,-0.38432777,-0.05861323,0.04337188,-0.20274831,0.008938571,-0.26978898,-0.2756038,0.14715691,0.20764065,-0.06590574,0.037079517,-0.16622491,-0.20610467,-0.027349915,0.24786504,-0.17476268,0.109541446,0.08228532,0.09453195,-0.0738077,-0.03212642,-0.071605146,0.3103775,0.2560336,0.32307428,-0.08570588,0.32083523,0.034525525,-0.27763772,0.044642612,0.15477937,0.15659125,-0.04456762,0.41742578,-0.071636505,-0.11379184,0.003241084,-0.07860615,0.17579736,0.1466636,0.12627989,-0.30553812,0.014773613,-0.038139064,0.14258851,0.170573,0.09637157,0.11655163,0.38223252,0.2532303,0.1682337,0.028869262,-0.15994401,0.2978428,-0.31066567,-0.19605109,-0.29050216,0.1633564,-0.07911543,-0.059264284,-0.112155154,-0.13130246,0.31183347,-0.114714384,0.32376993,0.2733959,0.027483996,-0.06252366,0.009143126,0.23050436,-0.038515132,0.106836945,0.08055004,0.37136963,0.13124873,-0.33600512,0.10938652,0.23332869,0.09322856,-0.32067755,0.115621805,-0.16418971,-0.21362469,0.043647848,0.042103816,-0.10370439,-0.07207628,-0.07221325,-0.022226987,-0.025849303,-0.1923297,0.24731448,0.24234687,-0.3230304,-0.009727336,-0.08948667,0.24301016,-0.26437697,0.08293787,-0.0708202,0.063925356,-0.003044174,0.1715319,0.08995263,-0.33317286,0.39237487,0.31521478,0.17633921,-0.019818064,0.28682297,-0.015383722,0.19394797,-0.00986343,-0.04659596,-0.16130145,0.19587852,-0.39030313,0.036230735,-0.10318252,0.23488672,-0.21843128,0.14070593,-0.28846613 55 | -0.22991239,0.20565005,-0.12366841,0.055582676,0.15597792,0.4117222,-0.3123278,-0.045863982,-0.3097293,0.23658991,-0.04477568,0.38878685,-0.22688287,-0.17719898,-0.13102792,-0.21039926,0.18027467,-0.08177662,0.25181502,0.38981757,0.001140384,-0.3820629,-0.057116196,0.033353858,-0.20456079,0.006768253,-0.2666376,-0.26484856,0.13850664,0.19976941,-0.06129079,0.03240076,-0.16663785,-0.18936355,-0.027725097,0.24478893,-0.15844005,0.10648705,0.068506636,0.09707764,-0.083156444,-0.029346999,-0.07101378,0.29196244,0.2431952,0.30806944,-0.07129476,0.3100748,0.02889114,-0.26208025,0.047794472,0.15183474,0.15806928,-0.03506357,0.4061502,-0.071578495,-0.111852154,0.015738614,-0.07641295,0.1768835,0.16000767,0.11916376,-0.29809588,0.015216064,-0.036044855,0.14467052,0.15711094,0.08789021,0.096117884,0.38206452,0.24953203,0.16128616,0.038753595,-0.16368777,0.28649214,-0.2995755,-0.1981625,-0.2812919,0.1692592,-0.060018625,-0.04781488,-0.10546512,-0.13351154,0.29303434,-0.11581379,0.31579158,0.25535914,0.0384127,-0.04871634,0.010351566,0.21825059,-0.043233465,0.104519695,0.085679784,0.37067914,0.13688822,-0.32956478,0.11854034,0.24258262,0.09624977,-0.31599107,0.09117815,-0.17322278,-0.20340803,0.0503904,0.04460173,-0.09270972,-0.060468033,-0.07105584,-0.014704338,-0.022208031,-0.18797804,0.24444184,0.22898233,-0.32031628,-0.02756385,-0.0963111,0.24278218,-0.26985353,0.09207598,-0.07168161,0.05410896,-0.008727729,0.17141189,0.095854364,-0.32602924,0.38969034,0.3141841,0.17610104,-0.009363351,0.28029218,-0.008156795,0.19905397,-0.005804348,-0.0453096,-0.16638294,0.19777374,-0.39653236,0.047802307,-0.100862265,0.2395247,-0.20519902,0.13545011,-0.29037547 56 | -0.2428461,0.22061035,-0.12524645,0.059113383,0.160875,0.4248488,-0.32631642,-0.045520157,-0.33378845,0.24068823,-0.04348456,0.42209148,-0.22585864,-0.18442276,-0.13551696,-0.20773943,0.17609218,-0.07505539,0.26652354,0.39355117,0.000322526,-0.38683835,-0.062221665,0.046013422,-0.21034701,0.013618112,-0.25746942,-0.27870497,0.1447055,0.2022794,-0.06929123,0.03244154,-0.16727173,-0.20103182,-0.032378994,0.24716868,-0.17278485,0.105545305,0.08311466,0.08768381,-0.08563516,-0.030853156,-0.07649634,0.304188,0.25060394,0.3118741,-0.07971314,0.3119753,0.0430209,-0.2694062,0.0439925,0.15330225,0.15166143,-0.040140674,0.4259129,-0.07250836,-0.121966474,0.008628793,-0.0781044,0.17762262,0.15387583,0.11446324,-0.2999043,0.01304185,-0.03774971,0.14889893,0.17303619,0.08060281,0.111526296,0.37794685,0.2525681,0.17079553,0.036182586,-0.1584971,0.29894015,-0.3153924,-0.19873507,-0.28777507,0.1547273,-0.07261842,-0.052002598,-0.11923546,-0.13238063,0.3017885,-0.12727556,0.3238131,0.26086733,0.025446145,-0.04981868,-0.001479954,0.23323792,-0.025558768,0.100728065,0.09155149,0.3673475,0.12828022,-0.3406811,0.10691244,0.24246417,0.10332156,-0.32544637,0.10640415,-0.1727207,-0.20867875,0.037845127,0.03861355,-0.10918155,-0.064828604,-0.08166606,-0.016593188,-0.030156482,-0.19131452,0.24163428,0.24411817,-0.3205111,-0.013069178,-0.09108599,0.25160256,-0.2710476,0.09403845,-0.0719544,0.058233123,-0.006252379,0.17618518,0.10089851,-0.33891222,0.39603034,0.32064688,0.18280222,-0.020196449,0.2931137,-0.015628329,0.2010676,-0.007132705,-0.04342077,-0.1613321,0.20015429,-0.41015092,0.028382536,-0.105410844,0.24678208,-0.21807665,0.13765514,-0.29967842 57 | -0.24055746,0.2138292,-0.11716626,0.067656405,0.16043195,0.43273523,-0.3326647,-0.043863844,-0.33615774,0.2427533,-0.039112825,0.43697396,-0.23450652,-0.18775745,-0.13592955,-0.21648993,0.1853947,-0.07780736,0.2765679,0.4080108,0.0047033,-0.39415926,-0.05994222,0.036038,-0.22284812,0.008592573,-0.26379624,-0.28851962,0.14903888,0.20371155,-0.060734063,0.03365945,-0.17194769,-0.21402071,-0.015655676,0.24925171,-0.19031325,0.11936556,0.09230363,0.08604736,-0.08171744,-0.03547962,-0.07503433,0.32254228,0.25442538,0.32336777,-0.088728994,0.3123136,0.03203497,-0.28123045,0.042553045,0.1506615,0.1434231,-0.055664595,0.4313973,-0.06653952,-0.12036705,0.012432717,-0.07469567,0.1797629,0.15420082,0.1276434,-0.29988024,0.001961971,-0.04875812,0.15899068,0.1849532,0.08786577,0.1119486,0.38321745,0.25657514,0.17439619,0.033682473,-0.16440149,0.31304097,-0.31877998,-0.2088439,-0.2973261,0.1563038,-0.085471906,-0.070786856,-0.12807646,-0.14698322,0.30666018,-0.14095548,0.31580967,0.27294707,0.025483899,-0.06692633,-0.002243178,0.24303076,-0.018942026,0.101185255,0.08822259,0.36550865,0.12778848,-0.34202424,0.11916255,0.24333832,0.0970947,-0.32906288,0.10700795,-0.16634314,-0.1932514,0.034253053,0.047661144,-0.10198204,-0.06622926,-0.0625934,-0.015784651,-0.04111598,-0.20051612,0.24410795,0.2388487,-0.32310116,-0.007577867,-0.0897543,0.25040707,-0.26999217,0.100714974,-0.067198284,0.069828585,-0.002957872,0.18165588,0.1085244,-0.35059133,0.3984023,0.31246534,0.19260529,-0.016404647,0.29613355,-0.024258208,0.19774334,-0.010010163,-0.049226232,-0.1606562,0.19405729,-0.41206586,0.019892044,-0.09513259,0.25808582,-0.22308075,0.13552353,-0.2887518 58 | -0.2504939,0.22828259,-0.13503763,0.07085187,0.16222903,0.4382833,-0.33391035,-0.037892062,-0.3440511,0.24595831,-0.029641675,0.43527347,-0.24684101,-0.19126594,-0.14079897,-0.22753364,0.18057717,-0.0672861,0.26995087,0.40135735,0.005388111,-0.39371827,-0.05988021,0.035412386,-0.22765835,0.014585889,-0.27126852,-0.28703773,0.14694272,0.21439148,-0.058030155,0.034127187,-0.17776328,-0.21411115,-0.026083918,0.24938214,-0.19317625,0.11903052,0.106238246,0.08446509,-0.0852695,-0.038333554,-0.07583631,0.33047047,0.26327938,0.32912132,-0.096944794,0.3347009,0.03309998,-0.28510052,0.03905208,0.16447473,0.15288937,-0.052016377,0.44054782,-0.07654352,-0.11764647,0.018076051,-0.082590945,0.19652176,0.15569714,0.12657599,-0.3073616,0.012993242,-0.05215166,0.16588439,0.18396446,0.08711215,0.12547253,0.39218944,0.26254445,0.17955604,0.044116598,-0.16527858,0.31887558,-0.32447276,-0.20354022,-0.3023022,0.1584763,-0.088139474,-0.062108725,-0.12151828,-0.14114876,0.3110548,-0.14280857,0.3337404,0.28622618,0.026632402,-0.06630081,-0.003501987,0.24059665,-0.022558207,0.11114672,0.087844074,0.37364295,0.13735144,-0.35601756,0.12229016,0.23992454,0.105045736,-0.34139425,0.11953091,-0.16519381,-0.20662837,0.035992205,0.04308335,-0.10176287,-0.06889708,-0.07069802,-0.016258739,-0.029958233,-0.19960733,0.2575116,0.2484205,-0.3359788,-0.018375611,-0.082947426,0.25115597,-0.2810691,0.11246452,-0.074049905,0.07115819,-0.002399479,0.18768984,0.10558466,-0.35455188,0.41477737,0.32088238,0.19429961,-0.008945595,0.2902634,-0.015544443,0.20500357,-0.006779984,-0.052790653,-0.17273828,0.19658266,-0.41077608,0.019251902,-0.10066488,0.2585404,-0.22791724,0.14190872,-0.29774866 59 | -0.23360005,0.21424635,-0.12635571,0.055309385,0.1566634,0.43178737,-0.3283132,-0.0386677,-0.3311872,0.2372401,-0.04568165,0.41780847,-0.21839663,-0.17613369,-0.12521519,-0.21152568,0.17028876,-0.07031714,0.2548012,0.39606324,0.012621078,-0.38135368,-0.064257406,0.041908734,-0.20164008,0.004215291,-0.25955614,-0.28169784,0.15006067,0.19960016,-0.060292915,0.032489236,-0.17917933,-0.20659913,-0.026845142,0.24457355,-0.1693616,0.1164465,0.08508711,0.09338284,-0.08056754,-0.02448896,-0.074339956,0.307399,0.24742994,0.3253523,-0.08056612,0.31391802,0.043752305,-0.27647582,0.043234043,0.15725239,0.14937419,-0.044366248,0.41570473,-0.073825724,-0.11220241,0.007102154,-0.07760714,0.17954591,0.15403062,0.12547162,-0.296772,0.012674464,-0.042140864,0.14242497,0.1576885,0.080645025,0.10772614,0.36782622,0.24903871,0.16488725,0.02913578,-0.15641421,0.2958495,-0.3027204,-0.2001287,-0.27715257,0.15585707,-0.07490958,-0.0544248,-0.11453924,-0.13987066,0.2951974,-0.113456875,0.32063794,0.2635141,0.03548643,-0.056718607,0.009587977,0.22430325,-0.030260209,0.1022162,0.07743547,0.3556349,0.13696852,-0.32600242,0.10923728,0.24363795,0.092997715,-0.31887406,0.098199755,-0.1736639,-0.21320651,0.036266807,0.0432674,-0.096420236,-0.06407374,-0.073557116,-0.0108182,-0.03306576,-0.18639748,0.24720035,0.23487319,-0.3175641,-0.015529051,-0.08606672,0.24527904,-0.26348424,0.082698785,-0.06969729,0.06686054,-0.00575991,0.17019424,0.09599297,-0.337654,0.38815597,0.31691304,0.17154531,-0.012304286,0.288589,-0.012577142,0.19188423,-0.011230309,-0.05221197,-0.16594462,0.19092229,-0.39813673,0.04450667,-0.10710813,0.235152,-0.22023071,0.12778763,-0.2974588 60 | -0.23091385,0.21789984,-0.1202238,0.071641885,0.15752918,0.42907754,-0.32793218,-0.043151494,-0.33101678,0.23865259,-0.049869463,0.415704,-0.2319992,-0.18378644,-0.13228416,-0.21556775,0.17863783,-0.07523678,0.2606335,0.40005577,0.012102478,-0.38520837,-0.056094117,0.040613577,-0.21185918,0.012409547,-0.2731935,-0.2748325,0.13526879,0.20163956,-0.0635932,0.045603704,-0.17911924,-0.18768255,-0.03214658,0.24589296,-0.16072041,0.11694038,0.07671839,0.09999459,-0.07839144,-0.020383881,-0.06897876,0.30407774,0.26681688,0.33449036,-0.07817846,0.32212648,0.03072463,-0.2811648,0.041819293,0.15986754,0.16335504,-0.030474074,0.43242544,-0.066672504,-0.12830195,-0.001930723,-0.0829275,0.19140592,0.16327599,0.12626502,-0.30504832,0.009007918,-0.035946127,0.14266683,0.16234004,0.096183665,0.09876976,0.38667548,0.25494316,0.17284317,0.031658854,-0.16224726,0.299663,-0.3119942,-0.19321793,-0.28107387,0.1683255,-0.0665171,-0.047944408,-0.111737065,-0.13403453,0.31076944,-0.11207256,0.33879036,0.27464268,0.037278555,-0.056388233,0.013959073,0.22355321,-0.04656341,0.101291634,0.08270586,0.37372035,0.13679647,-0.33461654,0.107801154,0.24083158,0.09595653,-0.31621322,0.10470951,-0.17554031,-0.21988039,0.03913142,0.038705952,-0.1013783,-0.06832008,-0.0797449,-0.018406143,-0.025569294,-0.18744153,0.24288678,0.2354063,-0.3343515,-0.007531941,-0.09375464,0.24163216,-0.2768218,0.08948573,-0.07049858,0.067864165,-0.008140837,0.17613204,0.08762699,-0.33760512,0.39951506,0.31580538,0.18094614,-0.020155603,0.29087555,-0.012209008,0.1972572,-0.008967609,-0.048516836,-0.15595208,0.19625053,-0.39381638,0.031405993,-0.102675915,0.24471986,-0.219867,0.1384962,-0.28525028 61 | -0.21786831,0.19675437,-0.10963839,0.056391597,0.15207936,0.39076436,-0.30672744,-0.04297633,-0.3128887,0.22768985,-0.03555941,0.38617387,-0.23162578,-0.17650625,-0.13645457,-0.1989469,0.17452383,-0.06871715,0.25642514,0.37080842,0.002407365,-0.36091354,-0.047661915,0.03763383,-0.205797,0.01573898,-0.25641134,-0.25418663,0.1327294,0.19648796,-0.057666,0.033377107,-0.16257603,-0.19994332,-0.024300812,0.2293228,-0.17248395,0.09982008,0.085166305,0.07595253,-0.07535526,-0.02853822,-0.06625462,0.28418797,0.2349402,0.29612887,-0.07762774,0.30003777,0.0360602,-0.26323843,0.046655223,0.13884091,0.13482274,-0.03927308,0.393548,-0.07344564,-0.111700624,0.016612004,-0.07574337,0.17524204,0.14283319,0.11841651,-0.28268126,0.004629597,-0.04499511,0.15096714,0.16604118,0.076633334,0.10884414,0.36636314,0.24520512,0.16247708,0.028341439,-0.1597233,0.29364392,-0.30176735,-0.18408012,-0.285785,0.14901322,-0.074511215,-0.050154515,-0.11586538,-0.12378521,0.28405032,-0.118424326,0.309378,0.2526566,0.032699134,-0.0507522,-0.000805413,0.2239912,-0.019034656,0.10530313,0.09069894,0.34833845,0.11797801,-0.32600912,0.10938353,0.22427894,0.095116705,-0.3055433,0.09805406,-0.15798622,-0.18948331,0.03671205,0.043720964,-0.09494228,-0.06769971,-0.0639301,-0.005925941,-0.031733528,-0.19212675,0.22815761,0.22688502,-0.30834958,-0.013655268,-0.079619505,0.23464124,-0.25416848,0.10018204,-0.0759553,0.054130852,0.003203625,0.16217583,0.0915728,-0.3217477,0.38360715,0.29775706,0.18179795,-0.013358388,0.26940462,-0.015353245,0.19102624,-0.013503885,-0.042371586,-0.1531428,0.18842785,-0.38690534,0.021557167,-0.10150582,0.23410235,-0.21486469,0.13442211,-0.2713159 62 | -0.31292373,-0.010227712,-0.1770675,-0.25407892,-0.015739923,0.43275875,-0.15341985,0.016731162,0.000438674,0.24591807,-0.5434651,-0.33745167,-0.25023207,-0.37251157,-0.22619423,-0.13292883,0.4827863,-0.08368817,0.05414563,0.384718,0.07476936,-0.39425012,0.18911606,-0.093248084,-0.47283915,-0.043021068,-0.7133675,0.26426846,-0.1292376,-0.00818556,0.06544637,0.19200204,-0.38566217,0.38117644,-0.5178783,0.2909408,0.43729785,-0.12110591,-0.19691288,0.267507,-0.3426787,0.46079704,0.09663514,-0.18030474,0.13675997,-0.08915869,0.4069959,0.12594807,-0.12823978,-0.30100358,0.3412195,0.07215513,0.46825948,0.16277015,0.11338789,-0.042985726,-0.40997836,-0.18745007,-0.086986355,0.12126409,0.35540453,-0.5363548,-0.32219002,0.14654969,0.576392,0.10648066,-0.33956054,0.17677216,-0.4821885,0.21232794,0.16949718,-0.3114251,-0.2967844,-0.29135072,-0.052458696,0.024543678,-0.11269208,-0.16611722,0.47558907,0.42661288,0.63364863,0.23589002,0.15250255,-0.066670716,0.27630335,0.5383243,-0.42418772,0.07785225,0.23419484,0.09796317,-0.06423721,-0.063416235,0.1287194,-0.0590128,0.66829,0.263176,-0.15753567,0.2677644,0.448452,-0.12445326,-0.24440025,-0.21379368,-0.2144623,-0.1687796,0.74772346,0.14947008,0.000599472,-0.028930826,0.006245248,-0.1569578,0.15383694,0.0736543,0.20174047,0.20862843,-0.18437207,-0.4860113,-0.120997,-0.13585354,-0.048413385,-0.13089685,-0.09064815,-0.26822516,-0.069705956,-0.07024137,0.1026585,0.18734458,-0.0529752,0.27389562,0.104788855,0.3253587,0.087674715,0.1400941,0.42079213,0.18729119,-0.14396065,-0.33557123,-0.033073407,-0.041055344,0.4754847,-0.5101667,-0.083993345,-0.042272426,0.23620524,0.022837624 63 | -0.31289923,0.022597492,-0.19004068,-0.2321927,0.020511646,0.45869255,-0.17847207,0.02145597,-0.04039683,0.2271993,-0.5166136,-0.2599254,-0.22615139,-0.37304807,-0.21177262,-0.14000653,0.47148845,-0.10275408,0.05567108,0.39001027,0.09826157,-0.39882028,0.1687772,-0.060979217,-0.4278274,-0.04666347,-0.6830244,0.2195161,-0.10722118,0.013129707,0.04669314,0.19145031,-0.38427046,0.3541257,-0.48399156,0.30966434,0.43595666,-0.11125879,-0.22093478,0.28619888,-0.33003756,0.44064602,0.100810505,-0.15589738,0.15658814,-0.022843957,0.40537006,0.15091345,-0.11429434,-0.31147456,0.32629994,0.09404918,0.4502545,0.1711275,0.15958211,-0.067849554,-0.40916532,-0.18399921,-0.10107032,0.13097773,0.34985808,-0.48925996,-0.3283549,0.13288826,0.5507248,0.09418793,-0.34064484,0.16940887,-0.44662836,0.2584979,0.18740918,-0.29020444,-0.28456315,-0.2922548,-0.03729357,-0.001518761,-0.0973555,-0.1707922,0.45868036,0.42760566,0.6035938,0.20635985,0.13447241,-0.033587895,0.2728453,0.55744976,-0.35028857,0.09770948,0.23923683,0.1075479,-0.026697576,-0.09647444,0.12680079,-0.048917063,0.65251,0.25633895,-0.17486864,0.24952105,0.44348562,-0.11508846,-0.25462687,-0.20687623,-0.24252954,-0.2065315,0.71025634,0.13633,-0.008832408,-0.052682683,-0.017960593,-0.15620993,0.1362937,0.06645844,0.22091739,0.20402431,-0.22343557,-0.4543883,-0.14056946,-0.10401256,-0.08536354,-0.16182551,-0.08109462,-0.23640448,-0.091588095,-0.0396786,0.085573,0.13582829,-0.000510316,0.29458988,0.113292485,0.28980276,0.14655754,0.15063499,0.4240982,0.17615698,-0.13149214,-0.34317625,-0.009265917,-0.091718525,0.48445344,-0.4773329,-0.04781539,-0.051722277,0.24771854,-0.037078954 64 | -0.29583928,0.010318088,-0.17197679,-0.23042358,0.012130369,0.4654075,-0.18366815,0.022417068,-0.026369292,0.24217516,-0.5134361,-0.29025897,-0.23684192,-0.36882445,-0.22520593,-0.15030985,0.46478495,-0.08821663,0.05335366,0.389515,0.08883204,-0.40312922,0.17968728,-0.06838561,-0.4516606,-0.039377455,-0.6921976,0.22267087,-0.11326778,0.001891486,0.045244627,0.19710281,-0.38135034,0.35190454,-0.49136317,0.30107316,0.43680692,-0.109699845,-0.20611942,0.27575555,-0.3432252,0.4460881,0.10473635,-0.16305894,0.13530865,-0.0526595,0.40514925,0.13788725,-0.12185043,-0.30925572,0.32973376,0.08553661,0.45377752,0.16511229,0.13437857,-0.054700714,-0.41244444,-0.17499292,-0.09254546,0.1248686,0.3603892,-0.5066869,-0.33491254,0.1382153,0.5568859,0.103537016,-0.34015155,0.16940942,-0.45639637,0.24782515,0.1949405,-0.28964022,-0.288784,-0.30090654,-0.03612405,0.003009928,-0.10706032,-0.17228898,0.46276852,0.4284362,0.60585797,0.2108702,0.1324437,-0.03998977,0.2687526,0.5573404,-0.36548862,0.08998667,0.24147105,0.099814914,-0.045604136,-0.08168748,0.12589046,-0.03889983,0.67918885,0.26636198,-0.17384322,0.2533803,0.45035553,-0.11133022,-0.2551603,-0.20394993,-0.23878893,-0.19644281,0.7259475,0.1529402,-0.000244845,-0.050617952,-0.005343802,-0.15873657,0.13943651,0.0720517,0.21380147,0.20367138,-0.2120916,-0.47302365,-0.14275132,-0.10905642,-0.079140835,-0.14897047,-0.08928892,-0.24454987,-0.07994437,-0.05187793,0.0945088,0.13794935,-0.012289717,0.2943742,0.122432895,0.28865233,0.1334483,0.15100119,0.43532616,0.17729224,-0.1419483,-0.346912,-0.012765653,-0.08199399,0.48416495,-0.48583397,-0.05078926,-0.05138251,0.2516703,-0.026933257 65 | -0.31879404,0.02832464,-0.19544855,-0.23638798,0.021735087,0.47778663,-0.19347325,0.024218764,-0.036133222,0.23929209,-0.5355347,-0.2877759,-0.23862892,-0.3873437,-0.22014068,-0.15130404,0.48298225,-0.08689984,0.06548976,0.4104503,0.10122155,-0.42136976,0.1850194,-0.07795058,-0.46080616,-0.051334985,-0.70338666,0.2381704,-0.11301821,0.006078297,0.046861082,0.19590735,-0.3860775,0.3673942,-0.50597554,0.31203797,0.444414,-0.11712993,-0.22921698,0.29579973,-0.33967844,0.45845887,0.0993148,-0.17085186,0.14671303,-0.039521504,0.4172071,0.14644049,-0.113955304,-0.3066839,0.3431187,0.09868794,0.48027414,0.17768663,0.15434757,-0.06603455,-0.4261654,-0.18577315,-0.089705154,0.12906419,0.37880066,-0.5060292,-0.3412308,0.13787314,0.5723873,0.10900232,-0.35168588,0.18456367,-0.46698663,0.25419983,0.20186123,-0.28480294,-0.28998384,-0.2931015,-0.027637793,0.006849065,-0.11138566,-0.17391264,0.46250668,0.4288789,0.6234132,0.2053005,0.1334059,-0.0414541,0.27980578,0.5648862,-0.36870643,0.09059729,0.24929903,0.11636951,-0.042176202,-0.09732556,0.1376117,-0.052858282,0.6905722,0.27144465,-0.19351952,0.26398548,0.4732944,-0.1260235,-0.26335838,-0.22006378,-0.2447374,-0.20421524,0.73313993,0.14400917,0.003083361,-0.058819436,-0.015597458,-0.1509196,0.14655982,0.07101982,0.21860754,0.21804582,-0.231294,-0.46978366,-0.13398963,-0.1043726,-0.08060519,-0.15931547,-0.08405642,-0.23585954,-0.09133032,-0.04077284,0.087970994,0.14466208,-0.003705832,0.3107376,0.120460816,0.3030517,0.1374503,0.14658917,0.4357275,0.1803245,-0.14422144,-0.3630002,-0.010272587,-0.08991512,0.5042055,-0.48809662,-0.05323755,-0.049214654,0.24248795,-0.028761635 66 | -0.306852,0.011088283,-0.18536307,-0.23687683,0.004070504,0.4479877,-0.16669773,0.022526477,-0.025880322,0.22938733,-0.51927257,-0.2977373,-0.23320307,-0.3689632,-0.22657184,-0.14067492,0.4708006,-0.09669057,0.05427066,0.39562958,0.08785245,-0.40703085,0.18555309,-0.0711619,-0.45109564,-0.041733887,-0.6915157,0.2350446,-0.10653241,0.007549662,0.04705957,0.19805156,-0.3705447,0.35588202,-0.5073905,0.3127662,0.44862786,-0.117397375,-0.2189882,0.28945905,-0.34173977,0.44695953,0.10008194,-0.16296493,0.14569716,-0.046630494,0.40967098,0.14132465,-0.108841725,-0.30417213,0.34138995,0.09769906,0.46112695,0.17792633,0.14849733,-0.06390965,-0.42079687,-0.18745242,-0.093213074,0.12794027,0.35824987,-0.5042388,-0.33063826,0.13892293,0.5622023,0.10202504,-0.34274998,0.1769112,-0.45622212,0.25334537,0.20207062,-0.28782886,-0.29156905,-0.29537505,-0.036547314,0.006391435,-0.104432225,-0.1830846,0.46687406,0.43139958,0.61408234,0.20505667,0.12717849,-0.04854676,0.28819224,0.5594757,-0.36253196,0.088565886,0.25132072,0.113586076,-0.039345134,-0.09545146,0.13533498,-0.051297855,0.6836901,0.26612368,-0.18169184,0.25788987,0.46658236,-0.12942559,-0.25557008,-0.21697888,-0.24700862,-0.19689904,0.72633415,0.15267654,0.003314566,-0.051259626,-0.011086612,-0.1600073,0.14363655,0.07714968,0.21919882,0.20570518,-0.22174717,-0.46950427,-0.1338035,-0.114853345,-0.071421824,-0.15348673,-0.08102485,-0.23700744,-0.09007208,-0.045987625,0.09371947,0.14283955,-0.009703051,0.30400285,0.122716874,0.2962138,0.12534249,0.15322067,0.4254703,0.18432057,-0.13751884,-0.3465268,-0.009183378,-0.08247687,0.49068564,-0.4856159,-0.051840506,-0.050293446,0.2428543,-0.024767635 67 | -0.3129567,0.01323263,-0.18803568,-0.24184014,0.010408036,0.45592946,-0.17032503,0.019484626,-0.018249726,0.23808381,-0.5105043,-0.30085656,-0.24601015,-0.3675744,-0.22424452,-0.13769472,0.4734472,-0.07648094,0.043311063,0.37900162,0.08079306,-0.40046716,0.17801939,-0.07679465,-0.46185902,-0.0351616,-0.69494355,0.23640354,-0.1064957,-0.003943308,0.05801582,0.19417566,-0.37068456,0.356916,-0.50094426,0.30356118,0.43751845,-0.11525006,-0.19855767,0.27796206,-0.34816197,0.44893014,0.10047296,-0.16314538,0.13935857,-0.059698272,0.39822668,0.13489044,-0.11141043,-0.29897523,0.33258805,0.09269806,0.46053603,0.17284761,0.12323212,-0.05824824,-0.40737063,-0.17437965,-0.09213088,0.11741518,0.36369762,-0.5111204,-0.3226169,0.13969041,0.55536747,0.11728967,-0.34312466,0.16884927,-0.459702,0.23280717,0.19116221,-0.2955874,-0.2834794,-0.29857078,-0.026887024,0.013845524,-0.10537445,-0.17284751,0.46922052,0.42964217,0.61723995,0.21675459,0.14206444,-0.044541676,0.27389607,0.5540683,-0.38156065,0.08117859,0.24019836,0.10625818,-0.041122317,-0.07779797,0.13822074,-0.054266956,0.67507315,0.26664445,-0.17857559,0.2558016,0.46342117,-0.12701999,-0.25562036,-0.21258286,-0.23303783,-0.18751808,0.7302799,0.15047395,0.002762679,-0.05066331,-0.001183621,-0.16591077,0.14325893,0.06813934,0.21368171,0.20792164,-0.21484675,-0.48130304,-0.13025704,-0.11326343,-0.07267139,-0.14412378,-0.095805965,-0.24219827,-0.07584498,-0.053597685,0.108224444,0.16569349,-0.02786304,0.28800565,0.11901882,0.310132,0.116664305,0.1542815,0.44238767,0.18220922,-0.14716995,-0.3477335,-0.018786754,-0.07272157,0.4808291,-0.49120587,-0.060511827,-0.046737943,0.24523208,-0.005182433 68 | -0.31715432,0.021788236,-0.18512626,-0.24288149,0.013501274,0.4635937,-0.17670181,0.010368419,-0.018734612,0.23699531,-0.52529424,-0.3065634,-0.25519505,-0.37254134,-0.23024522,-0.14579424,0.4768994,-0.09250937,0.049501408,0.3878602,0.07993967,-0.40514785,0.1906478,-0.08351435,-0.47394165,-0.044702806,-0.70195276,0.2397715,-0.11529798,-0.001992398,0.061233345,0.19487342,-0.3885089,0.3703058,-0.5148195,0.30462515,0.43758827,-0.10720302,-0.20436375,0.27950728,-0.34425187,0.45396587,0.10145868,-0.17179891,0.14485855,-0.056782056,0.41315544,0.13786359,-0.121568926,-0.30104697,0.33276713,0.08526617,0.4617799,0.16874138,0.12367555,-0.048249103,-0.40710896,-0.187717,-0.09527381,0.11879269,0.36537516,-0.5192656,-0.3283455,0.14242256,0.56960225,0.110168286,-0.3408602,0.17010853,-0.46224248,0.23411822,0.19053416,-0.29625082,-0.29330882,-0.29500574,-0.038249567,0.00378135,-0.11258535,-0.17585684,0.46822315,0.42694902,0.62042856,0.22277537,0.14102356,-0.045961052,0.26969713,0.5601331,-0.38473114,0.08903838,0.2385056,0.103344776,-0.043174114,-0.08377798,0.12872227,-0.0474245,0.6778955,0.25706133,-0.17145193,0.26236022,0.45700738,-0.12295322,-0.26241085,-0.20752898,-0.23735662,-0.19630109,0.73983806,0.14444767,-0.000487189,-0.04485624,-0.003827055,-0.16312607,0.15134147,0.07230552,0.21718055,0.20914656,-0.19878301,-0.48639652,-0.12783773,-0.1210027,-0.066000625,-0.14272021,-0.09302636,-0.2547379,-0.07828014,-0.048357416,0.1033175,0.16110456,-0.030125514,0.29319742,0.1085369,0.30762282,0.10988652,0.14137706,0.4341991,0.17857885,-0.14162205,-0.34217182,-0.020467846,-0.07551117,0.47894773,-0.5043243,-0.07108147,-0.047523092,0.24472086,-0.007974755 69 | -0.32878798,0.030184258,-0.19127119,-0.24120353,0.031908892,0.48041645,-0.19636017,0.020011619,-0.027629972,0.24065405,-0.51552695,-0.28916144,-0.23417684,-0.37129715,-0.21999398,-0.15056998,0.47487053,-0.08706549,0.04543417,0.39573476,0.09720378,-0.40338197,0.17816284,-0.073724434,-0.45429575,-0.041172143,-0.69837135,0.2362081,-0.10447149,-0.001314757,0.05889938,0.20391542,-0.37894976,0.3643972,-0.51169693,0.31303594,0.43911317,-0.116944335,-0.22091968,0.29232877,-0.34597072,0.44897595,0.1065499,-0.16918673,0.147599,-0.03508501,0.41460988,0.14619279,-0.106298395,-0.30583295,0.33958122,0.096188255,0.47118086,0.1787344,0.14884566,-0.056771785,-0.41875613,-0.17685212,-0.091777794,0.12538515,0.36680263,-0.5065004,-0.33657518,0.14384158,0.5632249,0.11240683,-0.34946227,0.18129501,-0.4637839,0.25621882,0.20145467,-0.29343542,-0.28831542,-0.29974797,-0.030292353,0.008115429,-0.110113345,-0.17709653,0.45720893,0.43149066,0.6146228,0.2133783,0.1294125,-0.03621032,0.28385878,0.5573571,-0.36463,0.09422559,0.24461742,0.10965032,-0.041625615,-0.097703375,0.1398604,-0.048154574,0.6824878,0.26505232,-0.18808144,0.24878831,0.47192338,-0.12875205,-0.2667764,-0.21829426,-0.24843425,-0.20290278,0.7237277,0.14503619,0.009405044,-0.058756135,-0.028972503,-0.15731011,0.14525597,0.07112176,0.22847663,0.21545576,-0.23747662,-0.46491864,-0.13293062,-0.09760256,-0.07884329,-0.15631472,-0.08553164,-0.24067253,-0.08690722,-0.05032292,0.09014448,0.14652808,-0.013678348,0.3071062,0.11338409,0.28961024,0.13967173,0.15702547,0.43958047,0.1870342,-0.13962305,-0.3577849,0.001018048,-0.09621154,0.50007147,-0.4837679,-0.06293103,-0.043677513,0.2529693,-0.028630044 70 | -0.31008488,0.000783619,-0.18190695,-0.25005764,0.001182416,0.45195997,-0.16622137,0.018142425,-0.00100008,0.24147694,-0.54082555,-0.33968282,-0.26291424,-0.36991003,-0.23184028,-0.14035127,0.4818259,-0.07577694,0.051950637,0.39247128,0.07582805,-0.3957758,0.18869448,-0.09308431,-0.47722593,-0.037294414,-0.71736926,0.26704025,-0.123457156,-0.00774055,0.0686746,0.20083074,-0.3890151,0.38167077,-0.5274648,0.29766166,0.44270778,-0.115157835,-0.20642664,0.2673691,-0.34595665,0.45746028,0.099848144,-0.1752089,0.13201216,-0.08686977,0.40653488,0.12728402,-0.1217424,-0.29960537,0.34738985,0.07735662,0.46884435,0.16186973,0.10786394,-0.042287197,-0.415831,-0.19298697,-0.08498127,0.121792994,0.35469797,-0.52526635,-0.32295722,0.1353679,0.57164127,0.11474086,-0.33785352,0.17312352,-0.47825244,0.22190697,0.16936365,-0.30855864,-0.30280754,-0.28816608,-0.037849423,0.020770876,-0.10655904,-0.16996974,0.48130068,0.42655724,0.63028204,0.22456577,0.14712185,-0.060189888,0.28126612,0.5502574,-0.409216,0.08043895,0.24227901,0.098321885,-0.04914528,-0.065053836,0.12690881,-0.04839873,0.66507596,0.2554696,-0.16246581,0.26211002,0.45510456,-0.13159633,-0.24899976,-0.21615689,-0.21872245,-0.18177436,0.7478874,0.14417087,0.005735493,-0.035849735,0.011563283,-0.16334033,0.14558971,0.07662212,0.20563966,0.21265504,-0.19304426,-0.481517,-0.12747839,-0.12598334,-0.05557868,-0.13809583,-0.09106886,-0.26166654,-0.06785294,-0.056328066,0.09978983,0.1801161,-0.035062905,0.27871707,0.10750389,0.32122874,0.10064316,0.14289132,0.42828244,0.18532202,-0.1430061,-0.336791,-0.026457481,-0.061677784,0.48246956,-0.50720215,-0.0696245,-0.051208723,0.24187948,0.001782351 71 | -0.32762223,0.02677194,-0.18819247,-0.24940725,0.008521517,0.46905142,-0.17666444,0.015379212,-0.02672258,0.24200056,-0.5342308,-0.29865664,-0.24336627,-0.37349713,-0.23275983,-0.1443296,0.481611,-0.09798833,0.059272274,0.40164864,0.09830523,-0.41788098,0.19167328,-0.08550035,-0.4738719,-0.04433247,-0.7167495,0.24349132,-0.1146365,-0.000532166,0.059304424,0.20247196,-0.3862661,0.37009284,-0.5189432,0.31921813,0.4525656,-0.117464155,-0.23119171,0.2922432,-0.34240502,0.46312714,0.10106499,-0.17150965,0.1541857,-0.05063151,0.4184778,0.14807144,-0.122678876,-0.31533405,0.3484519,0.0905928,0.47238833,0.17498751,0.15096837,-0.054818198,-0.42421234,-0.19209848,-0.08562446,0.12853806,0.36965805,-0.51617014,-0.34454575,0.14794293,0.5721071,0.103483416,-0.34075105,0.17687163,-0.46834636,0.24924167,0.19603628,-0.29575372,-0.2891005,-0.30064997,-0.036999185,0.00980132,-0.10933957,-0.17880736,0.4746464,0.43600345,0.6289256,0.21941374,0.13898203,-0.044031646,0.28911933,0.5714192,-0.38203618,0.09861932,0.2426732,0.10819876,-0.048763983,-0.09720014,0.13159662,-0.046023883,0.6876612,0.26695925,-0.18603306,0.26531327,0.47321194,-0.1199324,-0.26361525,-0.22557823,-0.23527026,-0.20447096,0.73798966,0.15166289,0.008317932,-0.051890753,-0.015905438,-0.15827599,0.15126157,0.069813885,0.21894833,0.21920009,-0.21697736,-0.47871137,-0.12874523,-0.11665154,-0.075497076,-0.14764869,-0.093446076,-0.24150419,-0.09074054,-0.05611284,0.08934436,0.15572032,-0.01462957,0.30303177,0.11571953,0.3090099,0.12703086,0.14616194,0.44593215,0.17912047,-0.13708086,-0.35567644,-0.012613304,-0.086268425,0.50303316,-0.50191414,-0.06278283,-0.046216972,0.24839665,-0.024377111 72 | -0.30632818,0.013275171,-0.18688819,-0.23284025,0.01221148,0.43644702,-0.16903119,0.013409035,-0.024875667,0.23216265,-0.5198554,-0.29604796,-0.24531846,-0.3661147,-0.21623655,-0.13688199,0.46913734,-0.077058055,0.047325745,0.37367284,0.091827266,-0.38695034,0.18338026,-0.08028128,-0.44929856,-0.044554647,-0.68763864,0.23760974,-0.11184346,0.010927039,0.050523147,0.1994071,-0.37630844,0.3626352,-0.49981686,0.28995442,0.43472326,-0.118456975,-0.21762712,0.2793009,-0.34113756,0.4444032,0.10079944,-0.17126589,0.14298451,-0.051845986,0.40603453,0.13906117,-0.1191376,-0.3006586,0.33703393,0.080191724,0.46360406,0.160334,0.13018596,-0.055996966,-0.40212253,-0.19123948,-0.084444955,0.119441375,0.3624163,-0.50204825,-0.3311537,0.14069454,0.5585073,0.10879919,-0.3323267,0.17460565,-0.45798498,0.23296492,0.17702593,-0.28663597,-0.28484765,-0.29187885,-0.038080044,0.012649983,-0.10148006,-0.16111603,0.45829102,0.42082053,0.605359,0.21441832,0.12946013,-0.043727748,0.2702831,0.54698807,-0.3736697,0.08555796,0.2369963,0.0960973,-0.04883209,-0.07483046,0.12539114,-0.04774206,0.6477513,0.26070276,-0.16952404,0.25210437,0.44503662,-0.118824534,-0.24643146,-0.21781208,-0.22604936,-0.1959357,0.72130924,0.14689998,-0.00366845,-0.04617193,-0.008670843,-0.14728722,0.14837046,0.06855346,0.21651489,0.20233339,-0.20226721,-0.4652648,-0.13628733,-0.11417943,-0.070142165,-0.14537139,-0.08921346,-0.2402872,-0.08044992,-0.05724308,0.099675044,0.15253605,-0.027158212,0.2837177,0.1035659,0.30598354,0.11860129,0.14806452,0.42233142,0.17267992,-0.14590552,-0.34043428,-0.007605014,-0.077061266,0.47153938,-0.4794376,-0.06439166,-0.04494766,0.23031484,-0.009388695 73 | -0.30277413,0.018129248,-0.17391616,-0.23217364,0.000665493,0.46172586,-0.1806396,0.01435683,-0.02607293,0.2390858,-0.5205251,-0.30007637,-0.246517,-0.3669087,-0.22686617,-0.13917433,0.45882246,-0.0889141,0.062311217,0.3911443,0.09087864,-0.3934214,0.18193425,-0.08228582,-0.44904384,-0.03765178,-0.6810051,0.23274408,-0.103887804,0.010307009,0.04747475,0.18928196,-0.37600288,0.35858682,-0.49101838,0.30424488,0.42909718,-0.11116804,-0.19752675,0.27053866,-0.34048977,0.44531184,0.09852027,-0.16194056,0.13819861,-0.05447848,0.40007213,0.14381091,-0.119113535,-0.30774954,0.32514483,0.085401565,0.4605011,0.16070615,0.13615786,-0.049720064,-0.40930375,-0.1763837,-0.088128634,0.12565151,0.3608188,-0.5004365,-0.3313871,0.14612453,0.5529918,0.1131046,-0.32620403,0.17698902,-0.44688147,0.24067926,0.19323623,-0.28321669,-0.27791038,-0.29303584,-0.032889653,0.00054818,-0.11572772,-0.1696556,0.46428475,0.42487326,0.5984529,0.21781449,0.1356664,-0.042630613,0.26817033,0.5410799,-0.36072114,0.09084574,0.23642173,0.099764876,-0.03510678,-0.07638118,0.12814032,-0.049005147,0.6685687,0.2633934,-0.1745183,0.24980772,0.44308275,-0.1188213,-0.24872328,-0.20924203,-0.235735,-0.18284933,0.72087276,0.15299307,0.002324593,-0.05369757,-0.001212299,-0.15811695,0.14677882,0.07050657,0.22034654,0.19951487,-0.19955938,-0.47250903,-0.13791281,-0.113466196,-0.074271455,-0.13056816,-0.082056224,-0.24338198,-0.07498424,-0.0538119,0.10226014,0.15246543,-0.018228801,0.2845019,0.10846103,0.29870203,0.12200126,0.14137852,0.42944297,0.17191446,-0.14441732,-0.339934,-0.012006292,-0.08351416,0.46721065,-0.48728457,-0.05247877,-0.04248353,0.24236217,-0.012116027 74 | -0.31006855,0.015189513,-0.18798158,-0.22419018,0.020210303,0.4513817,-0.17738387,0.02936897,-0.041169018,0.2336987,-0.5095444,-0.2754551,-0.23014076,-0.3697823,-0.22185415,-0.14005484,0.45661172,-0.091563925,0.06599408,0.39110997,0.09059351,-0.394383,0.17720439,-0.056971356,-0.41847637,-0.03995256,-0.67015654,0.21746844,-0.11370757,0.013352084,0.04044312,0.17823245,-0.36441833,0.35234308,-0.48657483,0.2939989,0.43496847,-0.10328448,-0.22269247,0.28296062,-0.3158233,0.431068,0.09902348,-0.15814394,0.14776705,-0.031216685,0.39718303,0.14134605,-0.11567379,-0.29961792,0.31426522,0.0973042,0.46096063,0.15805386,0.1622397,-0.04899747,-0.4247287,-0.19455571,-0.08346473,0.1348177,0.35687357,-0.49689198,-0.33838335,0.14223772,0.5486072,0.09815009,-0.336525,0.17489408,-0.44831845,0.26460624,0.19088797,-0.2894051,-0.2737589,-0.2927513,-0.03464454,-0.004321366,-0.104464,-0.17062584,0.45622206,0.41596502,0.6039357,0.20863783,0.12009111,-0.03599302,0.27574214,0.56156164,-0.352898,0.08404523,0.23160335,0.1127208,-0.03760709,-0.091449104,0.13178009,-0.048916876,0.6703107,0.25580683,-0.18599872,0.2442176,0.45260653,-0.12199325,-0.25941873,-0.21303818,-0.25324336,-0.19896004,0.714806,0.14895716,-0.005696672,-0.06377757,-0.008869509,-0.15164426,0.13738371,0.059554204,0.21248153,0.20592865,-0.21828805,-0.46015915,-0.13553359,-0.10574434,-0.08320103,-0.15416664,-0.077688284,-0.23627679,-0.08719059,-0.048872966,0.09658211,0.124351025,-0.006995612,0.30347002,0.11830178,0.29281235,0.14980404,0.13698533,0.41091105,0.16391183,-0.1475265,-0.35058132,-0.014389721,-0.08567867,0.49183676,-0.48217303,-0.03552754,-0.04849301,0.24414437,-0.042712092 75 | -0.13100864,0.22496913,-0.03892574,-0.23647456,0.16382414,0.39421514,-0.22847259,-0.05256324,-0.2231109,-0.041279685,-0.09691393,0.23546828,0.31257048,-0.07810353,0.15214464,-0.13094148,0.1442906,-0.21473452,-0.20867199,-0.07603643,0.36520842,0.08580162,-0.059817914,0.15226524,0.00828314,-0.11900022,0.054697122,-0.109192856,0.24560164,-0.104453,-0.07398482,0.24912407,-0.05290525,0.0499889,-0.067625575,0.42899808,0.36136624,-0.16430382,-0.47395256,0.50042015,-0.10883381,0.17076223,0.3287323,-0.32521722,-0.072944924,0.42901018,0.37848672,0.20163593,0.03881278,-0.08333766,0.13701417,0.27324012,0.12919943,0.42420304,0.25980884,-0.35566607,-0.09358826,0.039686963,-0.1281559,0.030756904,0.3608361,0.22620991,-0.14320534,0.13947484,0.11253499,-0.14837246,-0.3822201,0.015965918,-0.07043514,0.4011144,0.25226444,-0.061780397,0.08057222,-0.039827053,-0.058929544,0.19392656,0.30031818,-0.11712929,-0.2853158,0.39815202,0.10244405,-0.043506935,0.14355195,-0.028790398,0.3280488,0.26587656,0.387605,0.33865815,0.32025543,0.21146354,0.039041974,-0.54240906,0.113971055,0.019662922,0.3178617,0.144076,-0.13263787,-0.13486034,0.22933619,0.009881756,-0.1773022,-0.26812273,-0.29668412,-0.39200374,-0.07531541,0.049789634,0.16209346,-0.24763504,-0.4500241,-0.010328796,0.116452016,0.0730214,0.11071934,-0.13723876,-0.4550125,0.11518126,-0.15685458,0.13446881,-0.10468928,-0.36617,-0.06532441,0.1590937,-0.402416,-0.017466873,-0.20162323,0.005014425,-0.000564674,0.113415726,0.05208578,-0.21703333,0.21686569,0.37530023,0.3641681,0.179411,0.16202241,-0.28995463,0.13800286,-0.24109408,0.60437816,0.12004272,-0.23525436,0.28347594,0.22360085,-0.2597411 76 | -0.1293868,0.23028599,-0.04975735,-0.23737584,0.16413021,0.38677937,-0.22592314,-0.050279044,-0.22460638,-0.05341521,-0.108040884,0.24028316,0.3142961,-0.06521526,0.14889675,-0.12139309,0.14981888,-0.21967687,-0.20263797,-0.07133159,0.35333002,0.08066432,-0.05387202,0.15161356,0.015279152,-0.122400224,0.052823957,-0.110961966,0.22679792,-0.099593796,-0.07411349,0.24733125,-0.050463043,0.05664217,-0.06087063,0.39960146,0.37164673,-0.15094869,-0.47225422,0.49341732,-0.098340504,0.17406051,0.33275244,-0.33336228,-0.072804265,0.41686586,0.37495902,0.18640968,0.0401808,-0.0811903,0.13217053,0.2638504,0.13357951,0.41616866,0.24434675,-0.3563717,-0.089820564,0.026215991,-0.12342877,0.039077662,0.35252303,0.22443001,-0.14668281,0.12729764,0.123532645,-0.15264404,-0.3824334,-0.000201256,-0.07715778,0.4050519,0.24929911,-0.07021996,0.073160835,-0.050702322,-0.080321245,0.19758596,0.31727597,-0.10590411,-0.2903125,0.4047714,0.104333594,-0.038709804,0.13008377,-0.030279875,0.33982205,0.266065,0.39735168,0.3518479,0.32140172,0.22160788,0.031671826,-0.5537392,0.10930696,0.006835407,0.32074696,0.13739517,-0.12774116,-0.1416157,0.21899077,-0.005553225,-0.17278574,-0.2682885,-0.30537912,-0.39957595,-0.08091915,0.04657315,0.16495362,-0.23990993,-0.44086188,0.002939946,0.11641861,0.089909464,0.10054,-0.13809618,-0.4590171,0.123670384,-0.14552243,0.13898069,-0.09651371,-0.37974346,-0.058066946,0.15180121,-0.39468327,-0.012475554,-0.21143226,0.000456146,-0.010211003,0.10090328,0.0528382,-0.21932994,0.22695056,0.37298146,0.3643602,0.17802064,0.16999035,-0.3013311,0.14297588,-0.23326336,0.59033424,0.11951695,-0.24014229,0.27696896,0.2140349,-0.26027995 77 | -0.14253451,0.22718465,-0.04378191,-0.22926386,0.16179526,0.40145153,-0.2321095,-0.050865006,-0.22032173,-0.043073587,-0.10445082,0.23879471,0.31654134,-0.07908161,0.14162637,-0.12777695,0.15479717,-0.2136916,-0.21223868,-0.06135758,0.36081636,0.08326567,-0.060552116,0.14789289,0.004433056,-0.1271039,0.06488491,-0.10340506,0.23832779,-0.105042025,-0.0687855,0.24459246,-0.04557505,0.053452652,-0.07521641,0.43610373,0.37824702,-0.15630652,-0.47616082,0.5108018,-0.10002982,0.16710298,0.3434657,-0.33839625,-0.08531193,0.4307208,0.3774498,0.20300484,0.035217855,-0.07085753,0.12861057,0.27386957,0.1413259,0.4296194,0.24449085,-0.3585009,-0.09157942,0.041191787,-0.11457106,0.02849864,0.3631566,0.22898582,-0.14441104,0.13488922,0.10988874,-0.16099282,-0.38862538,0.00086643,-0.07916145,0.387318,0.2409737,-0.07814682,0.084637985,-0.037537917,-0.07125111,0.19202597,0.3124002,-0.113587074,-0.29071677,0.39294547,0.10396615,-0.034749456,0.14488417,-0.029304061,0.33338752,0.2524698,0.38573524,0.34090102,0.3203435,0.22047825,0.021709694,-0.527874,0.09777055,0.008139325,0.30067164,0.13951872,-0.12522073,-0.13659503,0.22772609,0.00937417,-0.1627826,-0.25916108,-0.29471073,-0.39078534,-0.070724666,0.046390153,0.15538464,-0.23911083,-0.44340625,-0.00938672,0.12106821,0.086384475,0.11382786,-0.13487437,-0.43673685,0.122127764,-0.14278665,0.13265064,-0.09129131,-0.35968444,-0.07470023,0.16069905,-0.39587796,-0.011717478,-0.20290549,0.009068782,-0.015824413,0.101857714,0.043286737,-0.21790768,0.21564901,0.3796394,0.3636446,0.17088392,0.1552772,-0.28738436,0.13336676,-0.23175707,0.59508437,0.12007991,-0.24296214,0.28466344,0.22256726,-0.24480385 78 | -0.11848467,0.22229013,-0.040254053,-0.22781864,0.16338295,0.39335334,-0.22438003,-0.04913582,-0.21504778,-0.038546782,-0.1008512,0.24341367,0.3269367,-0.075963706,0.14667112,-0.12663594,0.15395884,-0.21802051,-0.2186129,-0.07695669,0.3593182,0.0909278,-0.057836052,0.14854603,0.014560511,-0.12483453,0.05713571,-0.101927884,0.2395628,-0.105592944,-0.06746458,0.24792694,-0.042639006,0.061556954,-0.06813728,0.4239999,0.3790519,-0.15917918,-0.4803367,0.50012577,-0.098791644,0.1793142,0.3335566,-0.34037787,-0.07150433,0.4190476,0.38220966,0.18454146,0.045202494,-0.0799591,0.13377431,0.2580727,0.1397834,0.4270368,0.2471459,-0.35470185,-0.08645106,0.035517864,-0.1236618,0.034887224,0.35430282,0.22460452,-0.14402604,0.13782795,0.11833807,-0.16076657,-0.3988573,0.008848645,-0.07393185,0.3978162,0.24063246,-0.07842084,0.07308272,-0.039748617,-0.08262909,0.19273545,0.3117127,-0.10469055,-0.29531482,0.3987337,0.10370031,-0.035201237,0.1448071,-0.0380102,0.3329396,0.24855173,0.38276368,0.34566438,0.32267988,0.21480083,0.0246474,-0.5469604,0.10019563,0.010528508,0.31068772,0.13630633,-0.12507878,-0.14158066,0.22390847,-0.003837205,-0.16448244,-0.27269867,-0.2989312,-0.39453703,-0.08077167,0.047042277,0.1638625,-0.24635144,-0.45130837,-0.00750318,0.11392942,0.086115055,0.11040945,-0.14202432,-0.44456828,0.12619825,-0.14264163,0.13434778,-0.08662733,-0.38543653,-0.0722923,0.15657513,-0.41227192,-0.023489382,-0.2171129,0.010237191,-0.013161586,0.10191744,0.036228247,-0.21813768,0.2185813,0.38631248,0.3695824,0.18454129,0.16081768,-0.2902204,0.13107997,-0.22314218,0.6015421,0.12800679,-0.24760097,0.28668717,0.2131729,-0.2502937 79 | -0.11760946,0.21520846,-0.045884695,-0.22757939,0.14181054,0.37222493,-0.21807414,-0.047320414,-0.20658055,-0.046584193,-0.10079812,0.22157253,0.29774037,-0.06653659,0.13294281,-0.12303075,0.13907684,-0.19912332,-0.20657682,-0.08046136,0.33086038,0.08325656,-0.046233803,0.13442518,0.002966442,-0.114775866,0.05590133,-0.10322935,0.22817177,-0.109676234,-0.059168458,0.2408856,-0.03858816,0.056773655,-0.059698824,0.39692461,0.3477574,-0.14356229,-0.4535077,0.4653114,-0.091247715,0.15695971,0.31083313,-0.3209446,-0.07340484,0.39391285,0.35822147,0.18285881,0.036560874,-0.06433071,0.1193634,0.249057,0.11816478,0.39759818,0.22776261,-0.3281683,-0.08148549,0.036265414,-0.10276651,0.024794493,0.3275731,0.20668854,-0.13088317,0.12976316,0.11583949,-0.14227086,-0.358279,-0.001785647,-0.07480476,0.36489883,0.22887951,-0.077822775,0.07637651,-0.040462285,-0.07655745,0.19535263,0.2974485,-0.10247645,-0.27541667,0.37632945,0.09336835,-0.029814847,0.13851905,-0.045341298,0.3173802,0.23265986,0.35394683,0.32527313,0.29600072,0.20949537,0.02144364,-0.5100423,0.095174775,0.009133946,0.28726313,0.1282306,-0.108476095,-0.12159108,0.20576918,0.005025257,-0.15221743,-0.25345576,-0.27551672,-0.36469585,-0.07287626,0.041945968,0.15425847,-0.22356404,-0.42104548,-0.001277764,0.11452489,0.0782518,0.09394984,-0.13342361,-0.41748077,0.10684109,-0.1361318,0.12016947,-0.08710672,-0.3505821,-0.057003994,0.14511263,-0.3752738,-0.014932457,-0.19791935,0.015163656,-0.013556869,0.08892417,0.032479458,-0.20504193,0.20359507,0.36197996,0.34400424,0.16998513,0.1543258,-0.2734069,0.1292178,-0.20059511,0.55560386,0.120629266,-0.23504558,0.26491582,0.20797238,-0.22629532 80 | -0.12918915,0.23171344,-0.05642646,-0.23228517,0.16403535,0.38720608,-0.22667255,-0.0585044,-0.22600995,-0.044286087,-0.10996404,0.24953213,0.31303284,-0.08485644,0.13766845,-0.12899037,0.1584824,-0.21316117,-0.20251392,-0.059523735,0.36373687,0.07776627,-0.05484817,0.15104225,0.018718245,-0.12129101,0.03998823,-0.11302219,0.23133026,-0.100556634,-0.063401446,0.24351047,-0.05803932,0.057375513,-0.06522998,0.42060587,0.37416795,-0.1555237,-0.47670785,0.50310504,-0.10894138,0.1784718,0.3309251,-0.3309953,-0.06455858,0.4295892,0.38236138,0.19414045,0.03896748,-0.086150244,0.12722717,0.26219022,0.13944876,0.414939,0.2558517,-0.34911066,-0.10113695,0.026056917,-0.122969754,0.044605386,0.3471824,0.2226615,-0.15665129,0.13581383,0.12683599,-0.1508241,-0.3881506,0.017814092,-0.07012785,0.40375647,0.24741194,-0.07013038,0.07456935,-0.049618132,-0.06620256,0.18874504,0.30268064,-0.11266865,-0.27395436,0.39809453,0.10334025,-0.040841483,0.13872516,-0.027356233,0.33441994,0.27001354,0.37995297,0.3417276,0.31038308,0.21938631,0.031362824,-0.53911406,0.09676114,0.015026032,0.31310317,0.14327139,-0.12811568,-0.12202782,0.23186916,0.001093897,-0.1694702,-0.26909226,-0.3004452,-0.39117825,-0.06217788,0.03991961,0.161845,-0.24297063,-0.43717515,-0.010495901,0.121531285,0.08144132,0.10833485,-0.12822866,-0.4521944,0.12123437,-0.14079922,0.13284631,-0.102944866,-0.37281626,-0.060865764,0.14907289,-0.3981797,-0.005071734,-0.20607916,-0.000458865,0.006725301,0.1077425,0.037532743,-0.21097735,0.23149773,0.375817,0.35077587,0.17393824,0.15834159,-0.29160687,0.13858984,-0.22867002,0.5748167,0.112206206,-0.22718425,0.2615721,0.21688002,-0.24909051 81 | -0.11802379,0.22995073,-0.043149892,-0.2360871,0.1448002,0.39230695,-0.21375382,-0.057223827,-0.21110564,-0.033903927,-0.09437181,0.22347479,0.31501582,-0.0756295,0.14358509,-0.12217014,0.14716122,-0.20297967,-0.21251947,-0.07913126,0.35805959,0.08348436,-0.061537936,0.15359832,-0.006383466,-0.120268755,0.06012513,-0.11467077,0.242226,-0.11807225,-0.07469756,0.253944,-0.041514814,0.04422862,-0.07279251,0.4300249,0.3750761,-0.15133893,-0.47288644,0.5001709,-0.109772176,0.1753066,0.33519375,-0.34071404,-0.078544095,0.40969872,0.37980375,0.19718222,0.045802377,-0.06894239,0.12838829,0.27450126,0.12567827,0.42022943,0.23955862,-0.36097318,-0.07859241,0.045874428,-0.109813936,0.023812227,0.3576162,0.22140317,-0.1391421,0.13329144,0.11457897,-0.15836422,-0.3927879,0.0086283,-0.07698378,0.3875999,0.25380147,-0.07269338,0.07971691,-0.035390787,-0.0644958,0.20200743,0.31362447,-0.11535311,-0.28436157,0.40171435,0.089575015,-0.044311453,0.14806272,-0.046585117,0.33415276,0.2336144,0.37454212,0.33965236,0.31608483,0.21003126,0.019485548,-0.53064847,0.114034474,0.018070372,0.30889308,0.13918646,-0.11550697,-0.12722035,0.21890914,0.008817832,-0.163642,-0.27666542,-0.28650305,-0.38396212,-0.08259293,0.047238424,0.1736613,-0.23806667,-0.44220716,-0.009036935,0.121826954,0.08287055,0.1021863,-0.14262165,-0.4389168,0.12343975,-0.14548399,0.14129859,-0.08781879,-0.36250353,-0.07423482,0.16321956,-0.38890263,-0.021161541,-0.1984295,0.02698022,-0.019349974,0.09780612,0.038501672,-0.21371908,0.20384671,0.38056287,0.37496164,0.1736545,0.15338318,-0.284287,0.12659112,-0.22488199,0.57808715,0.11767558,-0.24709152,0.28238183,0.21348892,-0.23001857 82 | -0.13824067,0.23083016,-0.054868195,-0.22678843,0.17438166,0.39611337,-0.23711608,-0.051435087,-0.21910743,-0.03978858,-0.110666335,0.23117548,0.30072343,-0.0777189,0.13775547,-0.13057129,0.15549615,-0.21518941,-0.19931188,-0.046693634,0.34970644,0.060249377,-0.048560914,0.14158633,0.016042283,-0.12938502,0.041097585,-0.09524801,0.22965732,-0.10570393,-0.07006713,0.23848158,-0.055989455,0.057877265,-0.059657473,0.41587183,0.3621657,-0.15346514,-0.47436285,0.49161443,-0.10674266,0.17549774,0.32839867,-0.31467342,-0.06035938,0.41661698,0.3755126,0.18935046,0.039830986,-0.07441626,0.12868564,0.25866756,0.13490523,0.40308797,0.24412368,-0.34173527,-0.09849223,0.026975779,-0.123593375,0.03361915,0.34530205,0.2148626,-0.13976885,0.13008814,0.116967216,-0.153835,-0.37774354,0.004914483,-0.07152521,0.3856907,0.24572332,-0.07625087,0.06413957,-0.045781508,-0.072934814,0.18923974,0.2915518,-0.116618045,-0.26133755,0.38967398,0.110958755,-0.04175981,0.12956794,-0.03912227,0.3184116,0.26404086,0.35974237,0.32121423,0.29985067,0.2174395,0.027848985,-0.51684785,0.09287643,0.01736801,0.30700314,0.13972053,-0.1317252,-0.112945184,0.22372729,-0.003054531,-0.163385,-0.259081,-0.27995887,-0.37639531,-0.061586086,0.048445467,0.14475659,-0.23437254,-0.41512442,-0.006184834,0.115906425,0.08555609,0.107576825,-0.123857774,-0.42514542,0.110766076,-0.13714875,0.12752832,-0.102003954,-0.3580343,-0.05795499,0.14895917,-0.37819558,-0.004700914,-0.19953334,-0.000410145,-0.010444842,0.104918875,0.045128662,-0.20171154,0.2097587,0.35990107,0.33611736,0.16911536,0.15029474,-0.27901968,0.12836276,-0.22011916,0.5645623,0.1055844,-0.22260211,0.26580235,0.20223774,-0.23368782 83 | -0.12322035,0.22365321,-0.046395965,-0.22671574,0.1571365,0.41199458,-0.23440437,-0.06500332,-0.2286912,-0.022814594,-0.10103328,0.24956621,0.30501583,-0.085440926,0.1344388,-0.14093164,0.16489238,-0.21909268,-0.19658583,-0.05465332,0.358868,0.06560734,-0.05228598,0.14331648,-0.013697817,-0.12411187,0.037822828,-0.11929506,0.25496674,-0.10759819,-0.0694021,0.24844326,-0.05381821,0.040192172,-0.07955315,0.4351576,0.364335,-0.16261084,-0.46694916,0.5006788,-0.10838928,0.17333801,0.32787362,-0.3287,-0.07644662,0.42669916,0.37244493,0.20368671,0.043605063,-0.09113796,0.13948591,0.28183565,0.1444405,0.42656717,0.2568178,-0.35611606,-0.087014444,0.048860542,-0.11545524,0.042066142,0.36545834,0.22777447,-0.14431863,0.13098904,0.11218004,-0.14793895,-0.3917174,0.013591277,-0.0811687,0.4151043,0.26678312,-0.06378282,0.07998843,-0.05209941,-0.06750814,0.19599874,0.30408847,-0.12834333,-0.2819894,0.4073917,0.10353815,-0.04902776,0.14985263,-0.031081384,0.3345196,0.25743267,0.38077214,0.34221306,0.31366608,0.21400712,0.032921772,-0.53773576,0.11874701,0.012323052,0.3253658,0.15346889,-0.1363273,-0.120123096,0.24039689,0.008357384,-0.18382856,-0.27774647,-0.30669034,-0.3862984,-0.074865095,0.052997198,0.16117527,-0.24632534,-0.44803157,-0.007039788,0.12987009,0.078591414,0.12139209,-0.13616797,-0.45390403,0.11389184,-0.14645866,0.14003791,-0.09814915,-0.36816365,-0.076004244,0.16213228,-0.39652,-0.013067207,-0.20631146,0.014738293,0.002771587,0.11795706,0.04920006,-0.22050671,0.22331443,0.38648462,0.37389094,0.18892089,0.16977723,-0.303143,0.14620702,-0.23157057,0.6031416,0.12543537,-0.24365468,0.27663666,0.22846523,-0.25163016 84 | -0.1201094,0.22937335,-0.03634871,-0.23440385,0.15126401,0.38323206,-0.22833188,-0.059380516,-0.22711714,-0.038595058,-0.11056041,0.23547213,0.31152633,-0.07363205,0.14300458,-0.13377705,0.15271904,-0.21984176,-0.20007038,-0.068983816,0.36035794,0.080967225,-0.056797978,0.15369841,0.007021547,-0.12779947,0.053764425,-0.106580846,0.2318149,-0.10589183,-0.07637296,0.24369702,-0.05026263,0.05548839,-0.062135097,0.41308874,0.37044168,-0.16263387,-0.47610995,0.48520035,-0.107228965,0.16834527,0.32485816,-0.33110628,-0.068109274,0.4160474,0.37851992,0.19184536,0.045475703,-0.08750792,0.12774831,0.2617546,0.13759796,0.41907394,0.25342372,-0.34944963,-0.09020182,0.023908848,-0.119073234,0.039820936,0.35220003,0.22330649,-0.15003367,0.12917806,0.12488455,-0.15593931,-0.38772523,0.015177497,-0.08192347,0.4037279,0.25253093,-0.07425086,0.076609395,-0.04079906,-0.07206087,0.18917908,0.31073096,-0.1028202,-0.28383815,0.39995128,0.10998021,-0.044632163,0.1378642,-0.034990367,0.33386314,0.26030636,0.3818901,0.34040248,0.31089178,0.20989308,0.030530922,-0.52949846,0.105127364,0.015177908,0.3163328,0.13887063,-0.11935624,-0.13391846,0.22180994,0.000874422,-0.16577616,-0.26749685,-0.30242598,-0.3939276,-0.071285054,0.05645617,0.15862472,-0.24428396,-0.43560663,-0.001603633,0.112382926,0.07596878,0.110102154,-0.12099009,-0.4561166,0.11428635,-0.15062769,0.12927303,-0.09864373,-0.3723438,-0.063000664,0.1515348,-0.3946941,-0.008174829,-0.20116763,-0.003897364,-0.000927928,0.116483405,0.03972266,-0.21238482,0.21624692,0.36249506,0.36263597,0.18049273,0.15535232,-0.29313132,0.13907677,-0.22793742,0.5840433,0.10546404,-0.22338966,0.26734224,0.2079836,-0.2491096 85 | -0.1276242,0.23493253,-0.040432017,-0.24254905,0.16008556,0.41429624,-0.23075762,-0.062875345,-0.22571732,-0.037442546,-0.104220375,0.24148218,0.32285437,-0.07910004,0.14161284,-0.12802154,0.15293778,-0.21606962,-0.2150063,-0.08430811,0.3612625,0.082481325,-0.0537751,0.15263152,-0.007541711,-0.12903208,0.047281142,-0.11900361,0.24648516,-0.1190315,-0.07225739,0.25569075,-0.046685237,0.045329925,-0.0704302,0.42465642,0.3702178,-0.16349277,-0.47054654,0.49778098,-0.10711699,0.1787781,0.33506203,-0.34023246,-0.077266574,0.4249169,0.38485935,0.19542994,0.043907635,-0.08008776,0.13232091,0.2787446,0.12820576,0.428894,0.23759419,-0.35605556,-0.0837376,0.046364922,-0.108174086,0.029310156,0.35746256,0.2283649,-0.1402464,0.1390003,0.10787547,-0.15121435,-0.38670313,-0.004525905,-0.07459894,0.3943623,0.24619874,-0.075601205,0.076365575,-0.043649606,-0.07034907,0.20055361,0.3092004,-0.110331684,-0.29475236,0.39519763,0.09294547,-0.040718805,0.14773841,-0.03757433,0.32910496,0.24686506,0.38047668,0.34186804,0.32144132,0.21602345,0.030288259,-0.53997105,0.10959097,0.012234911,0.30754688,0.14507692,-0.12943146,-0.1305757,0.22010235,-4.34E-05,-0.16306584,-0.27099156,-0.29030114,-0.37510708,-0.084517,0.046493527,0.16702323,-0.23046967,-0.4437548,-0.004352851,0.12476472,0.08463309,0.100404374,-0.14387642,-0.44079298,0.116231695,-0.14619645,0.1493149,-0.08279374,-0.36887234,-0.07364363,0.16059029,-0.39263767,-0.023200847,-0.20344855,0.024807636,-0.024967905,0.09053332,0.050151054,-0.22290622,0.20545809,0.39493525,0.3715876,0.18406567,0.1671459,-0.2930373,0.13241486,-0.21299596,0.5923255,0.12984341,-0.2493309,0.29064897,0.22504929,-0.23073694 86 | -0.13002618,0.22144943,-0.058480628,-0.22276708,0.16110064,0.40004516,-0.23393998,-0.0467386,-0.21951354,-0.023676004,-0.10811921,0.23950647,0.28961295,-0.08719981,0.12306654,-0.13242054,0.1609157,-0.20811675,-0.18704595,-0.033154514,0.34171,0.04772458,-0.048889432,0.15157098,-0.012632874,-0.1156278,0.03767222,-0.11290029,0.23614775,-0.10128505,-0.06007804,0.23959237,-0.052760754,0.051142078,-0.06425784,0.41593632,0.36325553,-0.1504119,-0.45973474,0.49093547,-0.108054616,0.18122827,0.32135788,-0.31103167,-0.052425187,0.4186803,0.37102893,0.20762815,0.032554843,-0.082566045,0.13546172,0.26493785,0.13983373,0.4116339,0.2591955,-0.34498256,-0.0927836,0.035867974,-0.11831296,0.044285145,0.3519649,0.20691013,-0.14575008,0.13256173,0.11917392,-0.14739423,-0.37725106,0.008498794,-0.07436054,0.40103206,0.2501926,-0.06730963,0.068155445,-0.04740348,-0.06058778,0.17996626,0.28468126,-0.119544,-0.25931388,0.3899489,0.10219466,-0.04340595,0.13175474,-0.02417803,0.3206838,0.26808274,0.36798388,0.31934232,0.30761665,0.19776912,0.030795699,-0.5055728,0.10204739,0.010733126,0.32252008,0.13660403,-0.13622934,-0.11676363,0.22365573,0.00258503,-0.17842387,-0.24549605,-0.283477,-0.37751392,-0.058154292,0.0485195,0.14907302,-0.23806775,-0.42594057,-0.009049891,0.112013996,0.071624465,0.11889274,-0.11841389,-0.43900877,0.10553115,-0.13914207,0.13051982,-0.09754965,-0.35344517,-0.06823943,0.14970858,-0.38212106,-0.01239836,-0.18302265,-0.00028967,0.010357076,0.11103156,0.055364966,-0.20033818,0.21934363,0.35715815,0.34951842,0.16680554,0.14330727,-0.28609768,0.1235371,-0.22785902,0.56072664,0.103094615,-0.22242129,0.24870275,0.21385856,-0.24409872 87 | -0.11656999,0.20916745,-0.03016441,-0.23916884,0.13991939,0.37810937,-0.2109747,-0.054937895,-0.20895106,-0.037602525,-0.09365296,0.23148769,0.31604347,-0.07313173,0.14734942,-0.13045622,0.14710218,-0.21471938,-0.21717183,-0.08047859,0.35946345,0.08930517,-0.05695893,0.14695866,-0.011602553,-0.124211036,0.057380512,-0.11368303,0.24854101,-0.11185806,-0.06367799,0.2557893,-0.044807255,0.04155816,-0.061844293,0.4346737,0.3605017,-0.16274382,-0.44811338,0.50332004,-0.109125465,0.16646074,0.3323399,-0.32257724,-0.09538294,0.41516775,0.37153098,0.19867684,0.04614703,-0.07672366,0.13600773,0.26882485,0.13306963,0.43362895,0.23886234,-0.36419484,-0.06708988,0.04820233,-0.121225655,0.025336135,0.36242694,0.23439083,-0.12798868,0.1376945,0.110150255,-0.14593017,-0.3828877,0.002985881,-0.06672091,0.40537706,0.25875592,-0.06258766,0.07938585,-0.03994707,-0.05535327,0.20387867,0.30630207,-0.13041689,-0.29630536,0.40263456,0.08358582,-0.043775275,0.15446363,-0.033213787,0.32817104,0.24557462,0.39324832,0.33987388,0.32470512,0.20274809,0.03436371,-0.5440215,0.117425844,0.012016624,0.31720302,0.14945796,-0.13078783,-0.13900904,0.23083557,0.017427027,-0.1824404,-0.26638258,-0.2966022,-0.3835355,-0.08064726,0.053761404,0.1655171,-0.24581285,-0.45583403,-0.018094003,0.12114566,0.08367662,0.10757082,-0.13880555,-0.45780408,0.12606467,-0.15469071,0.14867032,-0.083846815,-0.36235526,-0.07678883,0.16341262,-0.4070555,-0.023171332,-0.19265424,0.016917286,-0.014017127,0.096735,0.060938366,-0.22381596,0.20288341,0.388171,0.3740126,0.18246917,0.16646793,-0.29708785,0.13553396,-0.2336522,0.59869456,0.12328945,-0.2534662,0.2875815,0.22990473,-0.24363604 88 | -0.11551137,0.22656263,-0.046880886,-0.22682405,0.1613763,0.39181742,-0.22653253,-0.05626228,-0.21519132,-0.042418607,-0.094864406,0.23314719,0.31442183,-0.06603961,0.15378185,-0.11898215,0.14053833,-0.21264571,-0.21447691,-0.068901464,0.35998842,0.088991776,-0.055522267,0.15615632,0.008611789,-0.120738246,0.0604767,-0.10914116,0.24051122,-0.106125146,-0.074980505,0.24379152,-0.0402695,0.053198267,-0.06397176,0.41615328,0.37481877,-0.15820952,-0.4712563,0.4970782,-0.10832274,0.17441788,0.33969074,-0.33875793,-0.08235031,0.41903967,0.37491396,0.18851842,0.042335503,-0.0787463,0.13347112,0.2616197,0.13285634,0.4296005,0.24390228,-0.35005948,-0.0749532,0.037085827,-0.12344914,0.023135222,0.34839424,0.22723375,-0.1392673,0.1260407,0.109120086,-0.16178793,-0.38733217,0.002943377,-0.07675882,0.3906792,0.24316788,-0.06576383,0.077228434,-0.0304194,-0.07720477,0.20100676,0.30947086,-0.10275947,-0.29510164,0.39655176,0.0997217,-0.04570108,0.13792878,-0.044027418,0.32354033,0.24256787,0.38169917,0.33352816,0.30934313,0.21808362,0.024009114,-0.5300391,0.09308823,0.008186534,0.3056994,0.1322548,-0.12987576,-0.1282732,0.22761276,-0.004564377,-0.16153213,-0.27141988,-0.2915608,-0.38878992,-0.08007037,0.04984477,0.16536708,-0.23376334,-0.44632247,-0.008689751,0.121922694,0.08601816,0.1022978,-0.13538472,-0.43450838,0.12165116,-0.15293291,0.13434026,-0.088789165,-0.36571172,-0.06523965,0.15651254,-0.39977285,-0.015363391,-0.20400378,0.003966056,-0.019644,0.102049425,0.037515935,-0.21434484,0.21272868,0.3850702,0.35148534,0.17262362,0.1643899,-0.2836029,0.1279177,-0.22170366,0.58541024,0.11957069,-0.23209815,0.27444968,0.21576263,-0.2427279 89 | -0.27860388,0.26101926,-0.34911427,0.109077886,0.5368622,0.040234193,-0.29410768,0.08807222,-0.3321896,-0.22377786,-0.37445915,0.28297517,0.14500456,-0.17722197,-0.024268685,-0.06656917,0.23785414,-0.2618376,0.14042602,0.41601503,0.077004954,-0.2655078,-0.13151453,0.17238255,0.6106381,-0.18617997,-0.21668808,0.30860832,-0.27915576,0.18868041,-0.10896893,-0.12900837,-0.17887335,0.51398665,0.024023592,-0.13853331,0.50635284,-0.08682389,-0.82872605,0.16187751,-0.006631874,0.18282959,0.2176204,-0.03128506,0.60323447,0.41230258,0.29623017,0.06393898,0.016885318,-0.24900694,0.07180225,-0.06675697,0.2561299,0.10498576,0.5640844,-0.07086435,-0.6054742,-0.5684776,-0.29813433,0.27599028,-0.103574954,-0.025109906,-0.41037893,-0.034978736,0.449568,-0.27235442,-0.2258842,0.29230636,-0.16513911,0.37352112,0.11835436,-0.15078077,-0.26043323,-0.044848625,-0.24285986,-0.10666458,0.056305606,0.20577076,0.3069509,0.23517093,0.51029205,-0.06476773,-0.28613374,0.16675824,0.19407992,0.75189954,0.16908456,0.17448103,-0.017687656,0.4085421,0.08222383,-0.1830443,-0.19490539,-0.017441947,0.19727844,-0.013217015,-0.09382841,0.100368954,0.29366246,-0.33917257,0.08677067,-0.009909393,-0.4186089,-0.6708172,0.42822513,-0.008919681,-0.2113214,-0.108643025,0.022990847,0.14687862,-0.12723432,0.10100509,0.045585997,0.22220655,-0.2791027,-0.02465121,0.003627209,-0.37791747,-0.42956,-0.689149,0.2951741,-0.13709986,-0.15557334,0.13850117,-0.36204934,-0.4405135,0.3106081,0.38698503,-0.27853146,0.09834614,0.5370579,-0.16811664,-0.19724512,-0.06268143,-0.17862803,-0.086813755,0.04076927,-0.29884094,0.31491315,-0.17648551,0.5091695,-0.11468926,-0.06863377,-0.48838717 90 | -0.29381862,0.27190256,-0.35418957,0.1073832,0.54672974,0.030923944,-0.2892401,0.082541175,-0.3335368,-0.23232539,-0.38136238,0.2886211,0.14688383,-0.18315585,-0.01630482,-0.05783369,0.23579717,-0.2696238,0.14478399,0.4179185,0.09231023,-0.2695419,-0.1328437,0.16895786,0.6096827,-0.19547436,-0.20728652,0.3074031,-0.265636,0.17998981,-0.10354672,-0.12955506,-0.17408633,0.51264215,0.026916388,-0.13641338,0.5166454,-0.082294606,-0.83745027,0.17750125,0.000997613,0.18317908,0.21900213,-0.050798137,0.5924417,0.4248488,0.31144622,0.057120953,0.008993613,-0.25055856,0.06697911,-0.05774289,0.2544445,0.11229642,0.5738567,-0.077426486,-0.6045221,-0.5658639,-0.29625028,0.26841524,-0.10736216,-0.025450796,-0.41052818,-0.04301486,0.44830072,-0.29171658,-0.21933149,0.2844169,-0.16409016,0.3770759,0.1107949,-0.16401179,-0.256957,-0.041242376,-0.24812925,-0.106962845,0.057463575,0.21626069,0.28794453,0.23199943,0.51161194,-0.07764357,-0.30007178,0.16268244,0.20335415,0.74309146,0.17645225,0.1826372,-0.016244918,0.4162385,0.078826115,-0.1868414,-0.20095372,-0.024171378,0.18430266,-0.012457944,-0.09518783,0.0993488,0.29315045,-0.34657857,0.10068391,-0.017363824,-0.42001614,-0.6663607,0.4257585,-0.014601772,-0.21571481,-0.11004636,0.011318076,0.1435228,-0.114762105,0.094764285,0.035152104,0.2205672,-0.28876662,-0.015376535,-0.00082613,-0.37901148,-0.42294353,-0.68970776,0.2991334,-0.14014086,-0.16244751,0.14252098,-0.36014298,-0.43272275,0.31472558,0.3825834,-0.29104212,0.08826309,0.5328888,-0.16449814,-0.21009116,-0.057948634,-0.16903846,-0.091732256,0.048919324,-0.3001448,0.31608215,-0.16893125,0.5074845,-0.10333299,-0.07890562,-0.49557865 91 | -0.28946325,0.26328605,-0.34433392,0.099785104,0.5320805,0.050535966,-0.29505095,0.08477319,-0.32599357,-0.21925089,-0.37619564,0.2666995,0.13893296,-0.18112013,-0.03355243,-0.064003386,0.23734175,-0.2573611,0.14360002,0.42028403,0.08546268,-0.2807195,-0.124900185,0.1688923,0.6053543,-0.18700309,-0.22520098,0.3085996,-0.26996157,0.18255469,-0.10111751,-0.13673803,-0.17995217,0.522053,0.015908943,-0.14921391,0.522157,-0.08763797,-0.83712435,0.16642204,-0.013233345,0.18100661,0.21052262,-0.027799413,0.6005003,0.42032397,0.2993906,0.06420218,0.008508104,-0.2621456,0.06883078,-0.056628156,0.2665333,0.11142379,0.568416,-0.086961634,-0.614901,-0.56496114,-0.29639545,0.272718,-0.096418925,-0.029538725,-0.42037082,-0.032140747,0.44794416,-0.2846762,-0.23210318,0.3001724,-0.17080957,0.369022,0.12273241,-0.1547823,-0.26774743,-0.048557624,-0.24470088,-0.11400768,0.056112133,0.21140334,0.31306943,0.2395828,0.5219464,-0.06450279,-0.29596362,0.17885931,0.2050373,0.7544069,0.15908849,0.17727627,-0.012867411,0.4160898,0.077859476,-0.1784717,-0.1992782,-0.017179811,0.191001,-0.010733015,-0.10215945,0.09928773,0.29287022,-0.33960184,0.080630936,-0.022979349,-0.4194896,-0.66131127,0.42214662,-0.004210063,-0.20427391,-0.10792026,0.01428047,0.14252397,-0.11467912,0.09152769,0.041571297,0.22828369,-0.27802992,-0.029002933,0.006602647,-0.379772,-0.42616463,-0.6836619,0.2878519,-0.13502762,-0.15194802,0.1450075,-0.35227883,-0.4267322,0.30718666,0.3711461,-0.27719432,0.10184126,0.51905257,-0.15656564,-0.1886163,-0.05742978,-0.17713624,-0.10369962,0.041015726,-0.3063363,0.32102683,-0.18446282,0.5046673,-0.1059704,-0.06686979,-0.49069417 92 | -0.2815296,0.26094183,-0.35394874,0.09692493,0.52827173,0.052297864,-0.298005,0.09149193,-0.32066303,-0.21960725,-0.3895646,0.2645249,0.12545468,-0.1900292,-0.042544644,-0.06996248,0.2464232,-0.2610376,0.14977,0.4440723,0.07651233,-0.2926804,-0.1266317,0.17075995,0.58983713,-0.18254468,-0.23504591,0.31600252,-0.28442934,0.19580957,-0.10138142,-0.13609484,-0.18159132,0.5268081,0.014866938,-0.14887065,0.51943445,-0.08753861,-0.8210788,0.16710803,-0.021529555,0.17631806,0.21124105,-0.021095173,0.61385846,0.4146431,0.2959119,0.06079519,0.010362749,-0.26490283,0.07839194,-0.05736067,0.2722202,0.09979985,0.5779676,-0.07526677,-0.6105434,-0.5740674,-0.2944008,0.27286673,-0.09840992,-0.046719708,-0.42262387,-0.039540485,0.45095065,-0.27195153,-0.2187388,0.30062068,-0.16731125,0.3724787,0.12995473,-0.15606517,-0.26126963,-0.05276003,-0.23709355,-0.107055604,0.036271174,0.19980974,0.3133071,0.22684416,0.51944196,-0.06501307,-0.2817581,0.18005152,0.19980453,0.7400388,0.14962885,0.1677221,-0.021105679,0.39919773,0.08608551,-0.16500875,-0.17814073,-0.020078233,0.20544975,-0.015611999,-0.10630975,0.11503383,0.29827273,-0.3330725,0.08314322,-0.009807839,-0.4072315,-0.65717596,0.4410916,-3.13E-06,-0.20865051,-0.107034504,0.024931528,0.13117234,-0.122510046,0.08606916,0.050378058,0.2276302,-0.28448865,-0.029718809,0.000409847,-0.3705851,-0.428078,-0.6727605,0.2821894,-0.13651264,-0.14238918,0.13857657,-0.34830362,-0.42526564,0.32497996,0.3880311,-0.26857013,0.10450988,0.52058434,-0.16511223,-0.19104433,-0.05979127,-0.17903739,-0.10064005,0.04535873,-0.30170417,0.31536233,-0.19149904,0.5169196,-0.116238765,-0.069300115,-0.47722545 93 | -------------------------------------------------------------------------------- /data/graph/pm25/dist.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swsamleo/MLSTGCN/4476587b35bd8e1c86f5c20d4b298dc689e7e476/data/graph/pm25/dist.npy -------------------------------------------------------------------------------- /data/graph/pm25/func.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swsamleo/MLSTGCN/4476587b35bd8e1c86f5c20d4b298dc689e7e476/data/graph/pm25/func.npy -------------------------------------------------------------------------------- /data/graph/pm25/neigh.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swsamleo/MLSTGCN/4476587b35bd8e1c86f5c20d4b298dc689e7e476/data/graph/pm25/neigh.npy -------------------------------------------------------------------------------- /data/graph/pm25/pm25_distri_kl.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swsamleo/MLSTGCN/4476587b35bd8e1c86f5c20d4b298dc689e7e476/data/graph/pm25/pm25_distri_kl.npy -------------------------------------------------------------------------------- /data/graph/pm25/pm25_distri_ws.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swsamleo/MLSTGCN/4476587b35bd8e1c86f5c20d4b298dc689e7e476/data/graph/pm25/pm25_distri_ws.npy -------------------------------------------------------------------------------- /data/graph/pm25/tempp_pm25.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swsamleo/MLSTGCN/4476587b35bd8e1c86f5c20d4b298dc689e7e476/data/graph/pm25/tempp_pm25.npy -------------------------------------------------------------------------------- /data/temporal_data/pm25/test.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swsamleo/MLSTGCN/4476587b35bd8e1c86f5c20d4b298dc689e7e476/data/temporal_data/pm25/test.npz -------------------------------------------------------------------------------- /data/temporal_data/pm25/train.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swsamleo/MLSTGCN/4476587b35bd8e1c86f5c20d4b298dc689e7e476/data/temporal_data/pm25/train.npz -------------------------------------------------------------------------------- /data/temporal_data/pm25/val.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swsamleo/MLSTGCN/4476587b35bd8e1c86f5c20d4b298dc689e7e476/data/temporal_data/pm25/val.npz -------------------------------------------------------------------------------- /datasets/air.py: -------------------------------------------------------------------------------- 1 | # For relative import 2 | import os 3 | import sys 4 | PROJ_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 5 | sys.path.append(PROJ_DIR) 6 | 7 | import numpy as np 8 | import pandas as pd 9 | from sklearn.preprocessing import normalize 10 | import torch 11 | from torch.utils import data 12 | from util import * 13 | 14 | 15 | class AirGraph(): 16 | 17 | def __init__(self, graph_dir, config_graph, gpu_id): 18 | 19 | device = 'cuda:%d' % gpu_id 20 | 21 | use_graph, fix_weight = config_graph['use'], config_graph['fix_weight'] 22 | tempp_diag_zero = config_graph['tempp_diag_zero'] 23 | distri_type = config_graph['distri_type'] 24 | 25 | self.A_dist = torch.from_numpy(np.float32(np.load(os.path.join(graph_dir, 'dist.npy')))).to(device) 26 | self.A_neighb = torch.from_numpy(np.float32(np.load(os.path.join(graph_dir, 'neigh.npy')))).to(device) 27 | self.A_func = torch.from_numpy(np.float32(np.load(os.path.join(graph_dir, 'func.npy')))).to(device) 28 | if distri_type == 'kl': 29 | self.A_distri = torch.from_numpy(np.float32(np.load(os.path.join(graph_dir, 'distri_kl.npy')))).to(device) 30 | elif distri_type == 'ws': 31 | self.A_distri = torch.from_numpy(np.float32(np.load(os.path.join(graph_dir, 'distri_kl.npy')))).to(device) 32 | else: 33 | self.A_distri = torch.from_numpy( 34 | np.float32(pd.read_csv(os.path.join(graph_dir, 'areaparacorr_92_air.csv'), header=None).values)).to(device) 35 | self.A_tempp = torch.from_numpy(np.float32(np.load(os.path.join(graph_dir, 'tempp_pm25.npy')))).to(device) 36 | 37 | self.node_num = self.A_dist.shape[0] 38 | 39 | if tempp_diag_zero: 40 | self.A_tempp.fill_diagonal_(0) 41 | 42 | self.use_graph = use_graph 43 | self.fix_weight = fix_weight 44 | self.graph_num = len(use_graph) 45 | 46 | def get_used_graphs(self): 47 | graph_list = [] 48 | for name in self.use_graph: 49 | graph_list.append(self.get_graph(name)) 50 | return graph_list 51 | 52 | def get_fix_weight(self): 53 | return (self.A_dist * 0.0829 + \ 54 | self.A_neighb * 0.2050 + \ 55 | self.A_distri * 0.1004 + \ 56 | self.A_tempp * 0.5276 + \ 57 | self.A_func * 0.0841) / 5 58 | 59 | def get_graph(self, name): 60 | if name == 'dist': 61 | return self.A_dist 62 | elif name == 'neighb': 63 | return self.A_neighb 64 | elif name == 'distri': 65 | return self.A_distri 66 | elif name == 'tempp': 67 | return self.A_tempp 68 | elif name == 'func': 69 | return self.A_func 70 | else: 71 | raise NotImplementedError 72 | 73 | 74 | class Air(data.Dataset): 75 | 76 | def __init__(self, data_dir, data_type): 77 | assert data_type in ['train', 'val', 'test'] 78 | self.data_type = data_type 79 | self._load_data(data_dir) 80 | 81 | def _load_data(self, data_dir): 82 | self.data = {} 83 | for category in ['train', 'val', 'test']: 84 | cat_data = np.load(os.path.join(data_dir, category + '.npz')) 85 | self.data['x_' + category] = cat_data['x'].astype(np.float32) 86 | self.data['y_' + category] = cat_data['y'].astype(np.float32) 87 | self.scaler = StandardScaler(mean=self.data['x_train'][..., 0].mean(), std=self.data['x_train'][..., 0].std()) 88 | for category in ['train', 'val', 'test']: 89 | self.data['x_' + category][..., 0] = self.scaler.transform(self.data['x_' + category][..., 0]) 90 | self.x, self.y = self.data['x_%s' % self.data_type], self.data['y_%s' % self.data_type] 91 | 92 | def __len__(self): 93 | return len(self.x) 94 | 95 | def __getitem__(self, index): 96 | return self.x[index], self.y[index] 97 | 98 | 99 | if __name__ == '__main__': 100 | graph_dir = 'data/graph' 101 | gpu_id = 0 102 | use_graph = ['dist'] 103 | graph = AirGraph(graph_dir, use_graph, gpu_id) 104 | data_dir = 'data/temporal_data' 105 | parking = AirGraph(data_dir=data_dir, data_type='train') 106 | print(len(parking)) 107 | parking = AirGraph(data_dir=data_dir, data_type='val') 108 | print(len(parking)) 109 | parking = AirGraph(data_dir=data_dir, data_type='test') 110 | print(len(parking)) 111 | -------------------------------------------------------------------------------- /figures/X2_ASTGCN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swsamleo/MLSTGCN/4476587b35bd8e1c86f5c20d4b298dc689e7e476/figures/X2_ASTGCN.png -------------------------------------------------------------------------------- /figures/X2_GWNet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swsamleo/MLSTGCN/4476587b35bd8e1c86f5c20d4b298dc689e7e476/figures/X2_GWNet.png -------------------------------------------------------------------------------- /figures/X2_MSTGCN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swsamleo/MLSTGCN/4476587b35bd8e1c86f5c20d4b298dc689e7e476/figures/X2_MSTGCN.png -------------------------------------------------------------------------------- /figures/X2_STGCN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swsamleo/MLSTGCN/4476587b35bd8e1c86f5c20d4b298dc689e7e476/figures/X2_STGCN.png -------------------------------------------------------------------------------- /figures/X2_STMGCN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swsamleo/MLSTGCN/4476587b35bd8e1c86f5c20d4b298dc689e7e476/figures/X2_STMGCN.png -------------------------------------------------------------------------------- /figures/X7_12_parking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swsamleo/MLSTGCN/4476587b35bd8e1c86f5c20d4b298dc689e7e476/figures/X7_12_parking.png -------------------------------------------------------------------------------- /figures/X7_24_parking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swsamleo/MLSTGCN/4476587b35bd8e1c86f5c20d4b298dc689e7e476/figures/X7_24_parking.png -------------------------------------------------------------------------------- /figures/framework.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swsamleo/MLSTGCN/4476587b35bd8e1c86f5c20d4b298dc689e7e476/figures/framework.png -------------------------------------------------------------------------------- /figures/graph_attention.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swsamleo/MLSTGCN/4476587b35bd8e1c86f5c20d4b298dc689e7e476/figures/graph_attention.png -------------------------------------------------------------------------------- /figures/map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swsamleo/MLSTGCN/4476587b35bd8e1c86f5c20d4b298dc689e7e476/figures/map.png -------------------------------------------------------------------------------- /figures/spatial_attention.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swsamleo/MLSTGCN/4476587b35bd8e1c86f5c20d4b298dc689e7e476/figures/spatial_attention.png -------------------------------------------------------------------------------- /gen_distri_graph.py: -------------------------------------------------------------------------------- 1 | # For relative import 2 | import os 3 | import sys 4 | PROJ_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 5 | sys.path.append(PROJ_DIR) 6 | 7 | import numpy as np 8 | import pandas as pd 9 | import matplotlib.pyplot as plt 10 | from datasets.parking import * 11 | import scipy.stats 12 | from sklearn.preprocessing import normalize 13 | 14 | from scipy.stats import wasserstein_distance 15 | 16 | 17 | def KL_divergence(p,q): 18 | return scipy.stats.entropy(p, q) 19 | 20 | 21 | raw_data = os.path.join(PROJ_DIR, 'data/distribution_240min.csv') 22 | 23 | node_num = 40 24 | data = pd.read_csv(raw_data).values 25 | 26 | 27 | A_distri = np.zeros((node_num, node_num)) 28 | 29 | A_distri_ws = np.zeros((node_num, node_num)) 30 | 31 | 32 | for i in range(node_num): 33 | for j in range(node_num): 34 | ii = data[i] 35 | jj = data[j] 36 | 37 | kl = KL_divergence(ii, jj) 38 | 39 | ws = wasserstein_distance(ii, jj) 40 | 41 | A_distri[i, j] = kl 42 | 43 | A_distri_ws[i, j] = ws 44 | 45 | A_distri = normalize(A_distri, axis=0, norm='l1') 46 | A_distri_ws = normalize(A_distri_ws, axis=0, norm='l1') 47 | 48 | 49 | np.save('/Users/wangshuo/data/traffic/graph/graph/distri_kl.npy', A_distri) 50 | np.save('/Users/wangshuo/data/traffic/graph/graph/distri_ws.npy', A_distri_ws) 51 | -------------------------------------------------------------------------------- /generate_training_data.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from __future__ import division 3 | from __future__ import print_function 4 | from __future__ import unicode_literals 5 | 6 | import argparse 7 | import numpy as np 8 | import os 9 | import pandas as pd 10 | 11 | 12 | data_dir = 'data\\original_data' 13 | data_fp = os.path.join(data_dir, 'parking_2month.csv') 14 | 15 | data = pd.read_csv(data_fp, header=None).values 16 | 17 | 18 | def generate_graph_seq2seq_io_data( 19 | df, x_offsets, y_offsets, add_time_in_day=False, add_day_in_week=False, scaler=None 20 | ): 21 | """ 22 | Generate samples from 23 | :param df: 24 | :param x_offsets: 25 | :param y_offsets: 26 | :param add_time_in_day: 27 | :param add_day_in_week: 28 | :param scaler: 29 | :return: 30 | # x: (epoch_size, input_length, num_nodes, input_dim) 31 | # y: (epoch_size, output_length, num_nodes, output_dim) 32 | """ 33 | 34 | num_samples, num_nodes = df.shape 35 | # data = np.expand_dims(df.values, axis=-1) 36 | data = np.expand_dims(df, axis=-1) 37 | feature_list = [data] 38 | if add_time_in_day: 39 | time_ind = (df.index.values - df.index.values.astype("datetime64[D]")) / np.timedelta64(1, "D") 40 | time_in_day = np.tile(time_ind, [1, num_nodes, 1]).transpose((2, 1, 0)) 41 | feature_list.append(time_in_day) 42 | if add_day_in_week: 43 | dow = df.index.dayofweek 44 | dow_tiled = np.tile(dow, [1, num_nodes, 1]).transpose((2, 1, 0)) 45 | feature_list.append(dow_tiled) 46 | 47 | data = np.concatenate(feature_list, axis=-1) 48 | x, y = [], [] 49 | min_t = abs(min(x_offsets)) 50 | max_t = abs(num_samples - abs(max(y_offsets))) # Exclusive 51 | for t in range(min_t, max_t): # t is the index of the last observation. 52 | x.append(data[t + x_offsets, ...]) 53 | y.append(data[t + y_offsets, ...]) 54 | x = np.stack(x, axis=0) 55 | y = np.stack(y, axis=0) 56 | return x, y 57 | 58 | 59 | def generate_train_val_test(args): 60 | seq_length_x, seq_length_y = args.seq_length_x, args.seq_length_y 61 | # df = pd.read_hdf(args.traffic_df_filename) 62 | 63 | df = data 64 | 65 | # 0 is the latest observed sample. 66 | x_offsets = np.sort(np.concatenate((np.arange(-(seq_length_x - 1), 1, 1),))) 67 | # Predict the next one hour 68 | y_offsets = np.sort(np.arange(args.y_start, (seq_length_y + 1), 1)) 69 | # x: (num_samples, input_length, num_nodes, input_dim) 70 | # y: (num_samples, output_length, num_nodes, output_dim) 71 | x, y = generate_graph_seq2seq_io_data( 72 | df, 73 | x_offsets=x_offsets, 74 | y_offsets=y_offsets, 75 | add_time_in_day=False, 76 | add_day_in_week=args.dow, 77 | ) 78 | 79 | print("x shape: ", x.shape, ", y shape: ", y.shape) 80 | # Write the data into npz file. 81 | num_samples = x.shape[0] 82 | num_test = round(num_samples * 0.2) 83 | num_train = round(num_samples * 0.7) 84 | 85 | 86 | num_val = num_samples - num_test - num_train 87 | x_train, y_train = x[:num_train], y[:num_train] 88 | x_val, y_val = ( 89 | x[num_train: num_train + num_val], 90 | y[num_train: num_train + num_val], 91 | ) 92 | x_test, y_test = x[-num_test:], y[-num_test:] 93 | 94 | for cat in ["train", "val", "test"]: 95 | _x, _y = locals()["x_" + cat], locals()["y_" + cat] 96 | print(cat, "x: ", _x.shape, "y:", _y.shape) 97 | np.savez_compressed( 98 | os.path.join(args.output_dir, f"{cat}.npz"), 99 | x=_x, 100 | y=_y, 101 | x_offsets=x_offsets.reshape(list(x_offsets.shape) + [1]), 102 | y_offsets=y_offsets.reshape(list(y_offsets.shape) + [1]), 103 | ) 104 | 105 | 106 | if __name__ == "__main__": 107 | parser = argparse.ArgumentParser() 108 | parser.add_argument("--output_dir", type=str, default="data/temporal_data\parking", help="Output directory.") 109 | parser.add_argument("--traffic_df_filename", type=str, default="data/original_data/parking_2month.csv", help="Raw traffic readings.",) 110 | parser.add_argument("--seq_length_x", type=int, default=24, help="Sequence Length.",) 111 | parser.add_argument("--seq_length_y", type=int, default=24, help="Sequence Length.",) 112 | parser.add_argument("--y_start", type=int, default=1, help="Y pred start", ) 113 | parser.add_argument("--dow", action='store_true',) 114 | 115 | args = parser.parse_args() 116 | 117 | generate_train_val_test(args) 118 | -------------------------------------------------------------------------------- /models/MSTGCN.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | import numpy as np 3 | import torch 4 | import torch.nn as nn 5 | import torch.nn.functional as F 6 | import os 7 | import numpy as np 8 | import torch 9 | import torch.utils.data 10 | from sklearn.metrics import mean_absolute_error 11 | from sklearn.metrics import mean_squared_error 12 | from scipy.sparse.linalg import eigs 13 | 14 | from torch_geometric.utils import dense_to_sparse, get_laplacian, to_dense_adj 15 | 16 | 17 | def cheb_polynomial_torch(L_tilde, K): 18 | N = L_tilde.shape[0] 19 | 20 | cheb_polynomials = [torch.eye(N).to(L_tilde.device), L_tilde.clone()] 21 | 22 | for i in range(2, K): 23 | cheb_polynomials.append(2 * L_tilde * cheb_polynomials[i - 1] - cheb_polynomials[i - 2]) 24 | 25 | return cheb_polynomials 26 | 27 | 28 | def cheb_polynomial(L_tilde, K): 29 | ''' 30 | compute a list of chebyshev polynomials from T_0 to T_{K-1} 31 | 32 | Parameters 33 | ---------- 34 | L_tilde: scaled Laplacian, np.ndarray, shape (N, N) 35 | 36 | K: the maximum order of chebyshev polynomials 37 | 38 | Returns 39 | ---------- 40 | cheb_polynomials: list(np.ndarray), length: K, from T_0 to T_{K-1} 41 | 42 | ''' 43 | 44 | N = L_tilde.shape[0] 45 | 46 | cheb_polynomials = [np.identity(N), L_tilde.copy()] 47 | 48 | for i in range(2, K): 49 | cheb_polynomials.append(2 * L_tilde * cheb_polynomials[i - 1] - cheb_polynomials[i - 2]) 50 | 51 | return cheb_polynomials 52 | 53 | 54 | def scaled_Laplacian(W): 55 | ''' 56 | compute \tilde{L} 57 | 58 | Parameters 59 | ---------- 60 | W: np.ndarray, shape is (N, N), N is the num of vertices 61 | 62 | Returns 63 | ---------- 64 | scaled_Laplacian: np.ndarray, shape (N, N) 65 | 66 | ''' 67 | 68 | assert W.shape[0] == W.shape[1] 69 | 70 | D = np.diag(np.sum(W, axis=1)) 71 | 72 | L = D - W 73 | 74 | lambda_max = eigs(L, k=1, which='LR')[0].real 75 | 76 | return (2 * L) / lambda_max - np.identity(W.shape[0]) 77 | 78 | 79 | class cheb_conv(nn.Module): 80 | ''' 81 | K-order chebyshev graph convolution 82 | ''' 83 | 84 | def __init__(self, K, fusiongraph, in_channels, out_channels, device): 85 | ''' 86 | :param K: int 87 | :param in_channles: int, num of channels in the input sequence 88 | :param out_channels: int, num of channels in the output sequence 89 | ''' 90 | super(cheb_conv, self).__init__() 91 | self.K = K 92 | self.fusiongraph = fusiongraph 93 | self.in_channels = in_channels 94 | self.out_channels = out_channels 95 | self.DEVICE = device 96 | self.Theta = nn.ParameterList([nn.Parameter(torch.FloatTensor(in_channels, out_channels).to(self.DEVICE)) for _ in range(K)]) 97 | 98 | def forward(self, x): 99 | ''' 100 | Chebyshev graph convolution operation 101 | :param x: (batch_size, N, F_in, T) 102 | :return: (batch_size, N, F_out, T) 103 | ''' 104 | 105 | adj_for_run = self.fusiongraph() 106 | 107 | edge_idx, edge_attr = dense_to_sparse(adj_for_run) 108 | # edge_idx_l, edge_attr_l = get_laplacian(edge_idx, edge_attr, 'sym') 109 | edge_idx_l, edge_attr_l = get_laplacian(edge_idx, edge_attr) 110 | 111 | L_tilde = to_dense_adj(edge_idx_l, edge_attr=edge_attr_l)[0] 112 | cheb_polynomials = cheb_polynomial_torch(L_tilde, self.K) 113 | 114 | batch_size, num_of_vertices, in_channels, num_of_timesteps = x.shape 115 | 116 | outputs = [] 117 | 118 | for time_step in range(num_of_timesteps): 119 | 120 | graph_signal = x[:, :, :, time_step] # (b, N, F_in) 121 | 122 | output = torch.zeros(batch_size, num_of_vertices, self.out_channels).to(self.DEVICE) # (b, N, F_out) 123 | 124 | for k in range(self.K): 125 | 126 | T_k = cheb_polynomials[k] # (N,N) 127 | 128 | theta_k = self.Theta[k] # (in_channel, out_channel) 129 | 130 | rhs = graph_signal.permute(0, 2, 1).matmul(T_k).permute(0, 2, 1) 131 | 132 | output = output + rhs.matmul(theta_k) 133 | 134 | outputs.append(output.unsqueeze(-1)) 135 | 136 | return F.relu(torch.cat(outputs, dim=-1)) 137 | 138 | 139 | class MSTGCN_block(nn.Module): 140 | 141 | def __init__(self, in_channels, K, nb_chev_filter, nb_time_filter, time_strides, fusiongraph, device): 142 | super(MSTGCN_block, self).__init__() 143 | self.cheb_conv = cheb_conv(K, fusiongraph, in_channels, nb_chev_filter, device) 144 | self.time_conv = nn.Conv2d(nb_chev_filter, nb_time_filter, kernel_size=(1, 3), stride=(1, time_strides), padding=(0, 1)) 145 | self.residual_conv = nn.Conv2d(in_channels, nb_time_filter, kernel_size=(1, 1), stride=(1, time_strides)) 146 | self.ln = nn.LayerNorm(nb_time_filter) 147 | 148 | def forward(self, x): 149 | ''' 150 | :param x: (batch_size, N, F_in, T) 151 | :return: (batch_size, N, nb_time_filter, T) 152 | ''' 153 | # cheb gcn 154 | spatial_gcn = self.cheb_conv(x) # (b,N,F,T) 155 | 156 | # convolution along the time axis 157 | time_conv_output = self.time_conv(spatial_gcn.permute(0, 2, 1, 3)) # (b,F,N,T) 158 | 159 | # residual shortcut 160 | x_residual = self.residual_conv(x.permute(0, 2, 1, 3)) # (b,F,N,T) 161 | 162 | x_residual = self.ln(F.relu(x_residual + time_conv_output).permute(0, 3, 2, 1)).permute(0, 2, 3, 1) # (b,N,F,T) 163 | 164 | return x_residual 165 | 166 | 167 | class MSTGCN_submodule(nn.Module): 168 | 169 | def __init__(self, gpu_id, fusiongraph, in_channels, len_input, num_for_predict): 170 | 171 | 172 | # def __init__(self, DEVICE, nb_block, in_channels, K, nb_chev_filter, nb_time_filter, time_strides, cheb_polynomials, num_for_predict, len_input): 173 | ''' 174 | :param nb_block: 175 | :param in_channels: 176 | :param K: 177 | :param nb_chev_filter: 178 | :param nb_time_filter: 179 | :param time_strides: 180 | :param cheb_polynomials: 181 | :param nb_predict_step: 182 | ''' 183 | 184 | # Fusion Graph 185 | device = 'cuda:%d' % gpu_id 186 | DEVICE = device 187 | 188 | # ----------------- 189 | 190 | # Parameters 191 | K = 3 192 | nb_block = 2 193 | nb_chev_filter = 64 194 | nb_time_filter = 64 195 | time_strides = 1 196 | num_of_vertices = fusiongraph.graph.node_num 197 | 198 | 199 | super(MSTGCN_submodule, self).__init__() 200 | 201 | self.BlockList = nn.ModuleList([MSTGCN_block(in_channels, K, nb_chev_filter, nb_time_filter, time_strides, fusiongraph, device)]) 202 | 203 | self.BlockList.extend([MSTGCN_block(nb_time_filter, K, nb_chev_filter, nb_time_filter, 1, fusiongraph, device) for _ in range(nb_block-1)]) 204 | 205 | self.final_conv = nn.Conv2d(int(len_input/time_strides), num_for_predict, kernel_size=(1, nb_time_filter)) 206 | 207 | self.DEVICE = DEVICE 208 | 209 | self.to(DEVICE) 210 | 211 | def forward(self, x): 212 | ''' 213 | :param x: (B, N_nodes, F_in, T_in) 214 | :return: (B, N_nodes, T_out) 215 | ''' 216 | 217 | x = x.permute((0, 2, 3, 1)) 218 | 219 | for block in self.BlockList: 220 | x = block(x) 221 | 222 | output = self.final_conv(x.permute(0, 3, 1, 2))[:, :, :, -1].permute(0, 2, 1) 223 | 224 | output = output.permute((0, 2, 1))[..., None] 225 | 226 | return output 227 | -------------------------------------------------------------------------------- /models/fusiongraph.py: -------------------------------------------------------------------------------- 1 | import torch 2 | from torch import nn 3 | from torch.nn import Sequential, Linear, Sigmoid 4 | import torch.nn.functional as F 5 | import seaborn as sns 6 | import matplotlib.pyplot as plt 7 | import math 8 | import numpy as np 9 | import pandas as pd 10 | 11 | class linear(nn.Module): 12 | def __init__(self, c_in, c_out): 13 | super(linear, self).__init__() 14 | self.mlp = torch.nn.Conv2d(c_in, c_out, kernel_size=(1, 1), padding=(0, 0), stride=(1, 1), bias=True) 15 | def forward(self, x): 16 | return self.mlp(x) 17 | 18 | class conv2d_(nn.Module): 19 | def __init__(self, input_dims, output_dims, kernel_size, stride=(1, 1), 20 | padding='SAME', use_bias=True, activation=F.relu, 21 | bn_decay=None): 22 | super(conv2d_, self).__init__() 23 | self.activation = activation 24 | if padding == 'SAME': 25 | self.padding_size = math.ceil(kernel_size) 26 | else: 27 | self.padding_size = [0, 0] 28 | self.conv = nn.Conv2d(input_dims, output_dims, kernel_size, stride=stride, 29 | padding=0, bias=use_bias) 30 | self.batch_norm = nn.BatchNorm2d(output_dims, momentum=bn_decay) 31 | torch.nn.init.xavier_uniform_(self.conv.weight) 32 | if use_bias: 33 | torch.nn.init.zeros_(self.conv.bias) 34 | 35 | 36 | def forward(self, x): 37 | x = x.permute(0, 3, 2, 1) 38 | x = x.to('cuda:0') 39 | x = F.pad(x, ([self.padding_size[1], self.padding_size[1], self.padding_size[0], self.padding_size[0]])) 40 | x = self.conv(x) 41 | x = self.batch_norm(x) 42 | if self.activation is not None: 43 | x = F.relu_(x) 44 | return x.permute(0, 3, 2, 1) 45 | 46 | 47 | class FC(nn.Module): 48 | def __init__(self, input_dims, units, activations, bn_decay, use_bias=True): 49 | super(FC, self).__init__() 50 | if isinstance(units, int): 51 | units = [units] 52 | input_dims = [input_dims] 53 | activations = [activations] 54 | elif isinstance(units, tuple): 55 | units = list(units) 56 | input_dims = list(input_dims) 57 | activations = list(activations) 58 | assert type(units) == list 59 | self.convs = nn.ModuleList([conv2d_( 60 | input_dims=input_dim, output_dims=num_unit, kernel_size=[1, 1], stride=[1, 1], 61 | padding='VALID', use_bias=use_bias, activation=activation, 62 | bn_decay=bn_decay) for input_dim, num_unit, activation in 63 | zip(input_dims, units, activations)]) 64 | 65 | def forward(self, x): 66 | for conv in self.convs: 67 | x = conv(x) 68 | return x 69 | 70 | 71 | class SGEmbedding(nn.Module): 72 | """ 73 | multi-graph spatial embedding 74 | SE: [num_vertices, D] 75 | GE: [num_vertices, num_graphs, 1] 76 | D: output dims = M * d 77 | retrun: [num_vertices, num_graphs, num_vertices, D] 78 | """ 79 | def __init__(self, D, bn_decay): 80 | super(SGEmbedding, self).__init__() 81 | self.FC_se = FC( 82 | input_dims=[D, D], units=[D, D], activations=[F.relu, None], 83 | bn_decay=bn_decay) 84 | 85 | self.FC_ge = FC( 86 | input_dims=[5, D], units=[D, D], activations=[F.relu, None], 87 | bn_decay=bn_decay) # input_dims = graph_nums 88 | 89 | def forward(self, SE, GE): 90 | # spatial embedding 91 | SE = SE.unsqueeze(0).unsqueeze(0) 92 | SE = self.FC_se(SE) 93 | # multi-graph embedding 94 | graph_embbeding = torch.empty(GE.shape[0], GE.shape[1], 5) 95 | for i in range(GE.shape[0]): 96 | graph_embbeding[i] = F.one_hot(GE[..., 0][i].to(torch.int64) % 5, 5) 97 | GE = graph_embbeding 98 | GE = GE.unsqueeze(dim=2) 99 | GE = self.FC_ge(GE) 100 | del graph_embbeding 101 | return SE + GE 102 | 103 | 104 | class spatialAttention(nn.Module): 105 | ''' 106 | spatial attention mechanism 107 | X: [num_vertices, num_graphs, num_vertices, D] 108 | SGE: [num_vertices, num_graphs, num_vertices, D] 109 | M: number of attention heads 110 | d: dimension of each attention outputs 111 | return: [num_vertices, num_graphs, num_vertices, D] 112 | ''' 113 | def __init__(self, M, d, bn_decay): 114 | super(spatialAttention, self).__init__() 115 | self.d = d 116 | self.M = M 117 | D = self.M * self.d 118 | self.FC_q = FC(input_dims=2 * D, units=D, activations=F.relu, 119 | bn_decay=bn_decay) 120 | self.FC_k = FC(input_dims=2 * D, units=D, activations=F.relu, 121 | bn_decay=bn_decay) 122 | self.FC_v = FC(input_dims=2 * D, units=D, activations=F.relu, 123 | bn_decay=bn_decay) 124 | self.FC = FC(input_dims=D, units=D, activations=F.relu, 125 | bn_decay=bn_decay) 126 | 127 | def forward(self, X, SGE): 128 | num_vertex = X.shape[0] 129 | X = torch.cat((X, SGE), dim=-1) 130 | # [num_vertices, num_graphs, num_vertices, 2 * D] 131 | 132 | query = self.FC_q(X) 133 | key = self.FC_k(X) 134 | value = self.FC_v(X) # [M * num_vertices, num_graphs, num_vertices, d] 135 | 136 | query = torch.cat(torch.split(query, self.M, dim=-1), dim=0) 137 | key = torch.cat(torch.split(key, self.M, dim=-1), dim=0) 138 | value = torch.cat(torch.split(value, self.M, dim=-1), dim=0) 139 | 140 | attention = torch.matmul(query, key.transpose(2, 3)) 141 | attention /= (self.d ** 0.5) 142 | attention = F.softmax(attention, dim=-1) 143 | 144 | X = torch.matmul(attention, value) 145 | X = torch.cat(torch.split(X, num_vertex, dim=0), dim=-1) 146 | X = self.FC(X) 147 | del query, key, value, attention 148 | return X 149 | 150 | 151 | class graphAttention(nn.Module): 152 | ''' 153 | multi-graph attention mechanism 154 | X: [num_vertices, num_graphs, num_vertices, D] 155 | SGE: [num_vertices, num_graphs, num_vertices, D] 156 | M: number of attention heads 157 | d: dimension of each attention outputs 158 | return: [num_vertices, num_graphs, num_vertices, D] 159 | ''' 160 | def __init__(self, M, d, bn_decay, mask=True): 161 | super(graphAttention, self).__init__() 162 | self.d = d 163 | self.M = M 164 | D = self.M * self.d 165 | self.mask = mask 166 | self.FC_q = FC(input_dims=2 * D, units=D, activations=F.relu, 167 | bn_decay=bn_decay) 168 | self.FC_k = FC(input_dims=2 * D, units=D, activations=F.relu, 169 | bn_decay=bn_decay) 170 | self.FC_v = FC(input_dims=2 * D, units=D, activations=F.relu, 171 | bn_decay=bn_decay) 172 | self.FC = FC(input_dims=D, units=D, activations=F.relu, 173 | bn_decay=bn_decay) 174 | 175 | def forward(self, X, SGE): 176 | num_vertex_ = X.shape[0] 177 | X = torch.cat((X, SGE), dim=-1) 178 | # [num_vertices, num_graphs, num_vertices, 2 * D] 179 | 180 | query = self.FC_q(X) 181 | key = self.FC_k(X) 182 | value = self.FC_v(X) 183 | 184 | query = torch.cat(torch.split(query, self.M, dim=-1), dim=0) 185 | key = torch.cat(torch.split(key, self.M, dim=-1), dim=0) 186 | value = torch.cat(torch.split(value, self.M, dim=-1), dim=0) 187 | # [M * num_vertices, num_graphs, num_vertices, d] 188 | 189 | query = query.permute(0, 2, 1, 3) 190 | key = key.permute(0, 2, 3, 1) 191 | value = value.permute(0, 2, 1, 3) 192 | 193 | attention = torch.matmul(query, key) 194 | attention /= (self.d ** 0.5) 195 | 196 | if self.mask: 197 | num_vertex = X.shape[0] 198 | num_step = X.shape[1] 199 | mask = torch.ones(num_step, num_step) 200 | mask = torch.tril(mask) 201 | mask = torch.unsqueeze(torch.unsqueeze(mask, dim=0), dim=0) 202 | mask = mask.repeat(self.K * num_vertex, num_vertex, 1, 1) 203 | mask = mask.to(torch.bool) 204 | attention = torch.where(mask, attention, -2 ** 15 + 1) 205 | 206 | attention = F.softmax(attention, dim=-1) 207 | 208 | X = torch.matmul(attention, value) 209 | X = X.permute(0, 2, 1, 3) 210 | X = torch.cat(torch.split(X, num_vertex_, dim=0), dim=-1) 211 | X = self.FC(X) 212 | del query, key, value, attention 213 | return X 214 | 215 | 216 | class gatedFusion(nn.Module): 217 | ''' 218 | gated fusion 219 | HS: [num_vertices, num_graphs, num_vertices, D] 220 | HG: [num_vertices, num_graphs, num_vertices, D] 221 | D: output dims = M * d 222 | return: [num_vertices, num_graphs, num_vertices, D] 223 | ''' 224 | 225 | def __init__(self, D, bn_decay): 226 | super(gatedFusion, self).__init__() 227 | self.FC_xs = FC(input_dims=D, units=D, activations=None, 228 | bn_decay=bn_decay, use_bias=False) 229 | self.FC_xt = FC(input_dims=D, units=D, activations=None, 230 | bn_decay=bn_decay, use_bias=True) 231 | self.FC_h = FC(input_dims=[D, D], units=[D, D], activations=[F.relu, None], 232 | bn_decay=bn_decay) 233 | 234 | def forward(self, HS, HG): 235 | XS = self.FC_xs(HS) 236 | XG = self.FC_xt(HG) 237 | z = torch.sigmoid(torch.add(XS, XG)) 238 | H = torch.add(torch.mul(z, HS), torch.mul(1 - z, HG)) 239 | H = self.FC_h(H) 240 | del XS, XG, z 241 | return H 242 | 243 | 244 | class STAttBlock(nn.Module): 245 | def __init__(self, M, d, bn_decay, mask=False): 246 | super(STAttBlock, self).__init__() 247 | self.spatialAttention = spatialAttention(M, d, bn_decay) 248 | self.graphAttention = graphAttention(M, d, bn_decay, mask=mask) 249 | self.gatedFusion = gatedFusion(M * d, bn_decay) 250 | 251 | def forward(self, X, SGE): 252 | HS = self.spatialAttention(X, SGE) 253 | HT = self.graphAttention(X, SGE) 254 | H = self.gatedFusion(HS, HT) 255 | del HS, HT 256 | return torch.add(X, H) 257 | 258 | class FusionGraphModel(nn.Module): 259 | def __init__(self, graph, gpu_id, conf_graph, conf_data, M, d, bn_decay): 260 | super(FusionGraphModel, self).__init__() 261 | self.M = M 262 | self.d = d 263 | self.bn_decay = bn_decay 264 | D = self.M * self.d 265 | self.SG_ATT = STAttBlock(M, d, bn_decay) 266 | self.SGEmbedding = SGEmbedding(D, bn_decay) 267 | 268 | self.FC_1 = FC(input_dims=[1, D], units=[D, D], activations=[F.relu, None], 269 | bn_decay=self.bn_decay) 270 | self.FC_2 = FC(input_dims=[D, D], units=[D, 1], activations=[F.relu, None], 271 | bn_decay=self.bn_decay) 272 | 273 | self.graph = graph 274 | self.matrix_w = conf_graph['matrix_weight'] 275 | # matrix_weight: if True, turn the weight matrices trainable. 276 | self.attention = conf_graph['attention'] 277 | # attention: if True, the SG-ATT is used. 278 | self.task = conf_data['type'] 279 | 280 | device = 'cuda:%d' % gpu_id 281 | 282 | if self.graph.graph_num == 1: 283 | self.fusion_graph = False 284 | self.A_single = self.graph.get_graph(graph.use_graph[0]) 285 | else: 286 | self.fusion_graph = True 287 | self.softmax = nn.Softmax(dim=1) 288 | 289 | if self.matrix_w: 290 | adj_w = nn.Parameter(torch.randn(self.graph.graph_num, self.graph.node_num, self.graph.node_num)) 291 | adj_w_bias = nn.Parameter(torch.randn(self.graph.node_num, self.graph.node_num)) 292 | self.adj_w_bias = nn.Parameter(adj_w_bias.to(device), requires_grad=True) 293 | self.linear = linear(5, 1) 294 | 295 | else: 296 | adj_w = nn.Parameter(torch.randn(1, self.graph.graph_num)) 297 | 298 | self.adj_w = nn.Parameter(adj_w.to(device), requires_grad=True) 299 | self.used_graphs = self.graph.get_used_graphs() 300 | assert len(self.used_graphs) == self.graph.graph_num 301 | 302 | def forward(self): 303 | 304 | if self.graph.fix_weight: 305 | return self.graph.get_fix_weight() 306 | 307 | # SE = torch.from_numpy(np.float32(pd.read_csv(r'data\SE\se_parking.csv', header=None).values)).to('cuda:0') 308 | SE = torch.from_numpy(np.float32(pd.read_csv('data\\SE\\se_pm25.csv', header=None).values)).to('cuda:0') 309 | # load spatial embedding 310 | 311 | if self.fusion_graph: 312 | if not self.matrix_w: 313 | self.A_w = self.softmax(self.adj_w)[0] 314 | adj_list = [self.used_graphs[i] * self.A_w[i] for i in range(self.graph.graph_num)] 315 | self.adj_for_run = torch.sum(torch.stack(adj_list), dim=0) 316 | # create a graph stack 317 | 318 | else: 319 | if self.attention: 320 | W = torch.stack((self.used_graphs)) 321 | GE = W[:,:,0].permute(1, 0).unsqueeze(dim=2) 322 | # generate graph embbeding 323 | 324 | SGE = self.SGEmbedding(SE, GE) 325 | W = self.FC_1(torch.unsqueeze(W.permute(1, 0, 2), -1)) 326 | W = self.SG_ATT(W, SGE) 327 | # multi-graph spatial attention 328 | 329 | W = self.FC_2(W).squeeze(dim=-1) 330 | W = torch.sum(self.adj_w * W.permute(1, 0, 2), dim=0) 331 | 332 | else: 333 | W= torch.sum(self.adj_w * torch.stack(self.used_graphs), dim=0) 334 | act = nn.ReLU() 335 | W = act(W) 336 | self.adj_for_run = W 337 | 338 | else: 339 | self.adj_for_run = self.A_single 340 | 341 | return self.adj_for_run 342 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | torch==1.8.1 2 | numpy==1.21.1 3 | scipy==1.2.1 4 | torch-cluster==1.5.9 5 | torch-geometric==1.7.2 6 | torch-scatter==2.0.6 7 | torch-sparse==0.6.9 8 | torch-spline-conv==1.2.1 9 | pytorch-lightning==1.2.8 10 | wandb==0.11.1 -------------------------------------------------------------------------------- /time_distribution.py: -------------------------------------------------------------------------------- 1 | from numpy.lib.function_base import kaiser 2 | from numpy.lib.histograms import histogram 3 | import pandas as pd 4 | import numpy as np 5 | import matplotlib.pyplot as plt 6 | from scipy.optimize import curve_fit #导入leastsq模块 7 | 8 | # def func1(x,a,b): 9 | # return a * np.exp(-b * x) 10 | # P0 = [0.2, 0.2] # 第一次猜测的函数拟合参数 11 | # 停车事件 12 | df = pd.read_csv("processed_data\\parking_events\\small_area_parking_two_months.csv") 13 | # 划分的区域的列表 14 | arealist = pd.read_csv("processed_data\map\\areanum copy.csv")["AreaName"].values 15 | 16 | timeline_max = 240 17 | timeline = np.arange(0,int(timeline_max+5),5) 18 | xlabels = np.arange(0,int(timeline_max+5),timeline_max/4) 19 | 20 | 21 | histogram_time_num = np.zeros((len(arealist), len(timeline)-1)) 22 | print(histogram_time_num.shape) 23 | duration_list = [] 24 | # for i in range(len(arealist)): 25 | # df1 = df[df["SmallAreas"] == arealist[i]] 26 | # for j in range(len(timeline)): 27 | # if (j< (len(timeline)-1)): 28 | # df2 = df1[(df1['DurationMinutes'] <= timeline[j+1]) & (df1['DurationMinutes'] > timeline[j])] 29 | # histogram_time_num[i][j] = len(df2) 30 | # else: 31 | # df2 = df1[(df1['DurationMinutes'] >= timeline[j])] 32 | # histogram_time_num[i][j-1] = histogram_time_num[i][j-1] + len(df2) 33 | 34 | # df3 = pd.DataFrame(histogram_time_num) 35 | # df3.T.to_csv('processed_data\parking_events\\area_duration_num.csv',index=0,header=None) 36 | 37 | for i in range(len(arealist)): 38 | df1 = df[df["SmallAreas"] == arealist[i]] # 某区域的停车事件 39 | duration_list.append(df1['DurationMinutes'].values) 40 | 41 | 42 | plt.rcParams['font.sans-serif'] = ['Times New Roman'] 43 | plt.rcParams['axes.unicode_minus'] = False 44 | 45 | color_list = ['#E2E2DF', '#D2D2CF', '#E2CFC4', '#F7D9C4', '#FAEDCB', '#C9E4DE', '#C6DEF1','#DBCDF0' ,'#F2C6DE', '#F9C6C9',\ 46 | '#E2E2DF', '#D2D2CF', '#E2CFC4', '#F7D9C4', '#FAEDCB', '#C9E4DE', '#C6DEF1','#DBCDF0' ,'#F2C6DE', '#F9C6C9',\ 47 | '#E2E2DF', '#D2D2CF', '#E2CFC4', '#F7D9C4', '#FAEDCB', '#C9E4DE', '#C6DEF1','#DBCDF0' ,'#F2C6DE', '#F9C6C9',\ 48 | '#E2E2DF', '#D2D2CF', '#E2CFC4', '#F7D9C4', '#FAEDCB', '#C9E4DE', '#C6DEF1','#DBCDF0' ,'#F2C6DE', '#F9C6C9'] 49 | fig = plt.figure( figsize = (16,9)) 50 | fig.subplots_adjust(hspace=0.8, wspace=0.4) 51 | 52 | for i in range(1,len(arealist)+1): 53 | ax = fig.add_subplot(6,7,i) 54 | a = duration_list[i-1] 55 | n, bins_limits, patches = ax.hist(a, bins = timeline, color = color_list[i-1]) 56 | print(bins_limits[:(len(timeline)-1)]+2.5, n) 57 | if (i==1): 58 | datas = np.array(bins_limits[:(len(timeline)-1)]+2.5) 59 | datas = np.row_stack((datas,n/(np.sum(n)*5))) 60 | else: 61 | datas = np.row_stack((datas,n/(np.sum(n)*5))) 62 | # ax.plot(bins_limits[:(len(timeline)-1)]+2.5, func1(bins_limits[:(len(timeline)-1)]+2.5, popt[0],popt[1]), label="拟合数据", linewidth = 0.3, color ='r', ls ='--') 63 | ax.plot(bins_limits[:(len(timeline)-1)]+2.5,n,linewidth = 0.3, color ='k', ls ='-.') 64 | ax.set_title(arealist[i-1]) 65 | ax.set_xticks(xlabels) 66 | # ax.set_xlabel('Durations Time (minutes)') 67 | # ax.set_ylabel('Number of Parking Events') 68 | print(datas) 69 | # plt.savefig(f"results\\figures\\durations_{timeline_max}min_test.svg", format="svg") 70 | data = pd.DataFrame(datas) 71 | data.to_csv('processed_data\\duration_distribution\\distribution_240min.csv', header=None, index=0) 72 | plt.show() -------------------------------------------------------------------------------- /train.py: -------------------------------------------------------------------------------- 1 | # For relative import 2 | import os 3 | import sys 4 | PROJ_DIR = os.path.dirname(os.path.abspath(__file__)) 5 | sys.path.append(PROJ_DIR) 6 | print(PROJ_DIR) 7 | import argparse 8 | 9 | import numpy as np 10 | import torch 11 | from torch import nn 12 | from torch.nn import functional as F 13 | from torch.optim import Adam 14 | import torch.optim as optim 15 | from torch.utils.data import DataLoader 16 | import pytorch_lightning as pl 17 | from pytorch_lightning import LightningDataModule, LightningModule, Trainer 18 | from pytorch_lightning.loggers import WandbLogger 19 | import wandb 20 | 21 | from models.MSTGCN import MSTGCN_submodule 22 | from models.fusiongraph import FusionGraphModel 23 | from datasets.air import * 24 | from util import * 25 | 26 | 27 | parser = argparse.ArgumentParser() 28 | args = parser.parse_args() 29 | 30 | gpu_num = 0 # set the GPU number of your server. 31 | os.environ['WANDB_MODE'] = 'offline' # select one from ['online','offline'] 32 | 33 | hyperparameter_defaults = dict( 34 | server=dict( 35 | gpu_id=0, 36 | ), 37 | graph=dict( 38 | use=['dist', 'neighb', 'distri','tempp', 'func'], # select no more than five graphs from ['dist', 'neighb', 'distri', 'tempp', 'func']. 39 | fix_weight=False, # if True, the weight of each graph is fixed. 40 | tempp_diag_zero=True, # if Ture, the values of temporal pattern similarity weight matrix turn to 0. 41 | matrix_weight=True, # if True, turn the weight matrices trainable. 42 | distri_type='exp', # select one from ['kl', 'ws', 'exp']: 'kl' is for Kullback-Leibler divergence, 'ws' is for Wasserstein, and 'exp' is for expotential fitting 43 | func_type='ours', # select one from ['ours', 'others'], 'others' is for the functionality graph proposed by "Spatiotemporal Multi-Graph Convolution Network for Ride-hailing Demand Forecasting" 44 | attention=True, # if True, the SG-ATT is used. 45 | ), 46 | model=dict( 47 | # TODO: check batch_size 48 | use='MSTGCN' 49 | ), 50 | data=dict( 51 | in_dim=1, 52 | out_dim=1, 53 | hist_len=24, 54 | pred_len=24, 55 | type='pm25', 56 | 57 | ), 58 | STMGCN=dict( 59 | use_fusion_graph=True, 60 | ), 61 | train=dict( 62 | seed=0, 63 | epoch=40, 64 | batch_size=32, 65 | lr=1e-4, 66 | weight_decay=1e-4, 67 | M=24, 68 | d=6, 69 | bn_decay=0.1, 70 | ) 71 | ) 72 | 73 | wandb_proj = 'parking' 74 | wandb.init(config=hyperparameter_defaults, project=wandb_proj) 75 | wandb_logger = WandbLogger() 76 | config = wandb.config 77 | 78 | pl.utilities.seed.seed_everything(config['train']['seed']) 79 | 80 | gpu_id = config['server']['gpu_id'] 81 | device = 'cuda:%d' % gpu_id 82 | 83 | if config['data']['type'] == 'pm25': 84 | root_dir = 'data' 85 | pm25_data_dir = os.path.join(root_dir, 'temporal_data/pm25') 86 | pm25_graph_dir = os.path.join(root_dir, 'graph/pm25') 87 | else: 88 | raise NotImplementedError 89 | 90 | 91 | if config['data']['type'] == 'pm25': 92 | graph = AirGraph(pm25_graph_dir, config['graph'], gpu_id) 93 | train_set = Air(pm25_data_dir, 'train') 94 | val_set = Air(pm25_data_dir, 'val') 95 | test_set = Air(pm25_data_dir, 'test') 96 | else: 97 | raise NotImplementedError 98 | 99 | scaler = train_set.scaler 100 | 101 | class LightningData(LightningDataModule): 102 | def __init__(self, train_set, val_set, test_set): 103 | super().__init__() 104 | self.batch_size = config['train']['batch_size'] 105 | self.train_set = train_set 106 | self.val_set = val_set 107 | self.test_set = test_set 108 | 109 | def train_dataloader(self): 110 | return DataLoader(self.train_set, batch_size=self.batch_size, shuffle=True, num_workers=0, 111 | pin_memory=True, drop_last=True) 112 | 113 | def val_dataloader(self): 114 | return DataLoader(self.val_set, batch_size=self.batch_size, shuffle=False, num_workers=0, 115 | pin_memory=True, drop_last=True) 116 | 117 | def test_dataloader(self): 118 | return DataLoader(self.test_set, batch_size=self.batch_size, shuffle=False, num_workers=0, 119 | pin_memory=True, drop_last=True) 120 | 121 | class LightningModel(LightningModule): 122 | def __init__(self, scaler, fusiongraph): 123 | super().__init__() 124 | 125 | self.scaler = scaler 126 | self.fusiongraph = fusiongraph 127 | 128 | self.metric_lightning = LightningMetric() 129 | 130 | self.loss = nn.L1Loss(reduction='mean') 131 | 132 | if config['model']['use'] == 'ASTGCN': 133 | self.model = ASTGCN_submodule(gpu_id, fusiongraph, config['data']['in_dim'], config['data']['hist_len'], config['data']['pred_len']) 134 | 135 | for p in self.model.parameters(): 136 | if p.dim() > 1: 137 | nn.init.xavier_uniform_(p) 138 | else: 139 | nn.init.uniform_(p) 140 | elif config['model']['use'] == 'MSTGCN': 141 | self.model = MSTGCN_submodule(gpu_id, fusiongraph, config['data']['in_dim'], config['data']['hist_len'], config['data']['pred_len']) 142 | for p in self.model.parameters(): 143 | if p.dim() > 1: 144 | nn.init.xavier_uniform_(p) 145 | else: 146 | nn.init.uniform_(p) 147 | else: 148 | raise NotImplementedError 149 | 150 | self.log_dict(config) 151 | 152 | def forward(self, x): 153 | return self.model(x) 154 | 155 | def _run_model(self, batch): 156 | x, y = batch 157 | y_hat = self(x) 158 | 159 | y_hat = self.scaler.inverse_transform(y_hat) 160 | 161 | loss = masked_mae(y_hat, y, 0.0) 162 | 163 | return y_hat, y, loss 164 | 165 | def training_step(self, batch, batch_idx): 166 | y_hat, y, loss = self._run_model(batch) 167 | self.log('train_loss', loss, on_step=True, on_epoch=True, prog_bar=True, logger=True) 168 | return loss 169 | 170 | def validation_step(self, batch, batch_idx): 171 | y_hat, y, loss = self._run_model(batch) 172 | self.log('val_loss', loss, on_step=True, on_epoch=True, prog_bar=True, logger=True) 173 | 174 | def test_step(self, batch, batch_idx): 175 | y_hat, y, loss = self._run_model(batch) 176 | self.metric_lightning(y_hat.cpu(), y.cpu()) 177 | self.log('test_loss', loss, on_step=False, on_epoch=True, prog_bar=True, logger=True) 178 | 179 | def test_epoch_end(self, outputs): 180 | test_metric_dict = self.metric_lightning.compute() 181 | self.log_dict(test_metric_dict) 182 | 183 | def configure_optimizers(self): 184 | return Adam(self.parameters(), lr=config['train']['lr'], weight_decay=config['train']['weight_decay']) 185 | 186 | 187 | def main(): 188 | fusiongraph = FusionGraphModel(graph, gpu_id, config['graph'], config['data'], config['train']['M'], config['train']['d'], config['train']['bn_decay']) 189 | 190 | lightning_data = LightningData(train_set, val_set, test_set) 191 | 192 | lightning_model = LightningModel(scaler, fusiongraph) 193 | 194 | trainer = Trainer( 195 | logger=wandb_logger, 196 | gpus=[gpu_id], 197 | max_epochs=config['train']['epoch'], 198 | # TODO 199 | # precision=16, 200 | ) 201 | 202 | trainer.fit(lightning_model, lightning_data) 203 | trainer.test(lightning_model, datamodule=lightning_data) 204 | print('Graph USE', config['graph']['use']) 205 | print('Data', config['data']) 206 | 207 | 208 | if __name__ == '__main__': 209 | main() 210 | -------------------------------------------------------------------------------- /util.py: -------------------------------------------------------------------------------- 1 | from typing import Any, Callable, Optional 2 | import torch 3 | import numpy as np 4 | from pytorch_lightning.metrics.metric import Metric 5 | from torch_geometric.utils import dense_to_sparse, get_laplacian, to_dense_adj 6 | 7 | 8 | def get_L(W): 9 | edge_index, edge_weight = dense_to_sparse(W) 10 | edge_index, edge_weight = get_laplacian(edge_index, edge_weight) 11 | adj = to_dense_adj(edge_index, edge_attr=edge_weight)[0] 12 | return adj 13 | 14 | 15 | def get_L_ASTGCN(W): 16 | edge_index, edge_weight = dense_to_sparse(W) 17 | edge_index, edge_weight = get_laplacian(edge_index, edge_weight, normalization="rw") 18 | adj = to_dense_adj(edge_index, edge_attr=edge_weight)[0] 19 | return adj 20 | 21 | 22 | def masked_mse(preds, labels, null_val=np.nan): 23 | if np.isnan(null_val): 24 | mask = ~torch.isnan(labels) 25 | else: 26 | mask = (labels!=null_val) 27 | mask = mask.float() 28 | mask /= torch.mean((mask)) 29 | mask = torch.where(torch.isnan(mask), torch.zeros_like(mask), mask) 30 | loss = (preds-labels)**2 31 | loss = loss * mask 32 | loss = torch.where(torch.isnan(loss), torch.zeros_like(loss), loss) 33 | return torch.mean(loss) 34 | 35 | def masked_rmse(preds, labels, null_val=np.nan): 36 | return torch.sqrt(masked_mse(preds=preds, labels=labels, null_val=null_val)) 37 | 38 | 39 | def masked_mae(preds, labels, null_val=np.nan): 40 | if np.isnan(null_val): 41 | mask = ~torch.isnan(labels) 42 | else: 43 | mask = (labels!=null_val) 44 | mask = mask.float() 45 | mask /= torch.mean((mask)) 46 | mask = torch.where(torch.isnan(mask), torch.zeros_like(mask), mask) 47 | loss = torch.abs(preds-labels) 48 | loss = loss * mask 49 | loss = torch.where(torch.isnan(loss), torch.zeros_like(loss), loss) 50 | return torch.mean(loss) 51 | 52 | 53 | def masked_mape(preds, labels, null_val=np.nan): 54 | if np.isnan(null_val): 55 | mask = ~torch.isnan(labels) 56 | else: 57 | mask = (labels!=null_val) 58 | mask = mask.float() 59 | mask /= torch.mean((mask)) 60 | mask = torch.where(torch.isnan(mask), torch.zeros_like(mask), mask) 61 | loss = torch.abs(preds-labels)/labels 62 | loss = loss * mask 63 | loss = torch.where(torch.isnan(loss), torch.zeros_like(loss), loss) 64 | return torch.mean(loss) 65 | 66 | 67 | def metric(pred, real): 68 | mae = masked_mae(pred, real, 0.0).item() 69 | mape = masked_mape(pred, real, 0.0).item() 70 | rmse = masked_rmse(pred, real, 0.0).item() 71 | return np.round(mae, 4), np.round(mape, 4), np.round(rmse, 4) 72 | 73 | 74 | class LightningMetric(Metric): 75 | 76 | def __init__( 77 | self, 78 | compute_on_step: bool = True, 79 | dist_sync_on_step: bool = False, 80 | process_group: Optional[Any] = None, 81 | dist_sync_fn: Callable = None, 82 | ): 83 | super().__init__( 84 | compute_on_step=compute_on_step, 85 | dist_sync_on_step=dist_sync_on_step, 86 | process_group=process_group, 87 | dist_sync_fn=dist_sync_fn, 88 | ) 89 | self.add_state("y_true", default=[], dist_reduce_fx=None) 90 | self.add_state("y_pred", default=[], dist_reduce_fx=None) 91 | 92 | def update(self, preds: torch.Tensor, target: torch.Tensor): 93 | """ 94 | Update state with predictions and targets. 95 | 96 | Args: 97 | preds: Predictions from model 98 | target: Ground truth values 99 | """ 100 | self.y_pred.append(preds) 101 | self.y_true.append(target) 102 | 103 | def compute(self): 104 | """ 105 | Computes explained variance over state. 106 | """ 107 | y_pred = torch.cat(self.y_pred, dim=0) 108 | y_true = torch.cat(self.y_true, dim=0) 109 | 110 | feature_dim = y_pred.shape[-1] 111 | pred_len = y_pred.shape[1] 112 | # (16, 12, 38, 1) 113 | 114 | y_pred = torch.reshape(y_pred.permute((0, 2, 1, 3)), (-1, pred_len, feature_dim)) 115 | y_true = torch.reshape(y_true.permute((0, 2, 1, 3)), (-1, pred_len, feature_dim)) 116 | 117 | # TODO: feature_dim, for multi-variable prediction, not only one. 118 | y_pred = y_pred[..., 0] 119 | y_true = y_true[..., 0] 120 | 121 | metric_dict = {} 122 | rmse_avg = [] 123 | mae_avg = [] 124 | mape_avg = [] 125 | for i in range(pred_len): 126 | mae, mape, rmse = metric(y_pred[:, i], y_true[:, i]) 127 | idx = i + 1 128 | 129 | metric_dict.update({'rmse_%s' % idx: rmse}) 130 | metric_dict.update({'mae_%s' % idx: mae}) 131 | metric_dict.update({'mape_%s' % idx: mape}) 132 | 133 | rmse_avg.append(rmse) 134 | mae_avg.append(mae) 135 | mape_avg.append(mape) 136 | 137 | metric_dict.update({'rmse_avg': np.round(np.mean(rmse_avg), 4)}) 138 | metric_dict.update({'mae_avg': np.round(np.mean(mae_avg), 4)}) 139 | metric_dict.update({'mape_avg': np.round(np.mean(mape_avg), 4)}) 140 | 141 | return metric_dict 142 | 143 | 144 | class StandardScaler(): 145 | def __init__(self, mean, std): 146 | self.mean = mean 147 | self.std = std 148 | 149 | def transform(self, data): 150 | return (data - self.mean) / self.std 151 | 152 | def inverse_transform(self, data): 153 | return (data * self.std) + self.mean 154 | 155 | 156 | def cheb_polynomial(L_tilde, K): 157 | ''' 158 | compute a list of chebyshev polynomials from T_0 to T_{K-1} 159 | 160 | Parameters 161 | ---------- 162 | L_tilde: scaled Laplacian, np.ndarray, shape (N, N) 163 | 164 | K: the maximum order of chebyshev polynomials 165 | 166 | Returns 167 | ---------- 168 | cheb_polynomials: list(np.ndarray), length: K, from T_0 to T_{K-1} 169 | 170 | ''' 171 | 172 | N = L_tilde.shape[0] 173 | 174 | cheb_polynomials = [np.identity(N), L_tilde.copy()] 175 | 176 | for i in range(2, K): 177 | cheb_polynomials.append(2 * L_tilde * cheb_polynomials[i - 1] - cheb_polynomials[i - 2]) 178 | 179 | return cheb_polynomials 180 | 181 | 182 | if __name__ == '__main__': 183 | 184 | lightning_metric = LightningMetric() 185 | batches = 10 186 | for i in range(batches): 187 | preds = torch.randn(32, 24, 38, 1) 188 | target = preds + 0.15 189 | 190 | rmse_batch = lightning_metric(preds, target) 191 | print(f"Metrics on batch {i}: {rmse_batch}") 192 | 193 | rmse_epoch = lightning_metric.compute() 194 | print(f"Metrics on all data: {rmse_epoch}") 195 | 196 | lightning_metric.reset() 197 | --------------------------------------------------------------------------------